4.1.1 抽象化
- 理解如何透過僅包含基本細節來對複雜系統進行建模,使用
- 具有合適引數的函式和過程(如指令式程式設計,參見第 2.3 節)
- ADT(參見第 4.1.3 節)
- 類(如面向物件程式設計中所用,參見第 4.3.1 節)
- 事實、規則(如宣告式程式設計中所用,參見第 4.3.1 節)
4.1.2 演算法
- 編寫二分查詢演算法來解決特定問題
- 理解使用二分查詢的必要條件
- 理解二分查詢的效能如何根據資料項的數量而變化
- 編寫演算法以實現插入排序
- 編寫演算法以實現氣泡排序
- 理解排序例程的效能可能取決於資料的初始順序和資料項的數量
- 編寫演算法以在以下每個元素中找到一個專案:連結串列、二叉樹、雜湊表
- 編寫演算法以將一個專案插入到以下每個元素中:堆疊、佇列、連結串列、二叉樹、雜湊表
- 編寫演算法以從以下每個元素中刪除一個專案:堆疊、佇列、連結串列
- 理解執行相同任務的不同演算法可以透過使用諸如完成任務所需的時間和使用的記憶體等標準進行比較
4.1.3 抽象資料型別 (ADT)
- 理解 ADT 是資料集合和對這些資料的一組操作
- 理解在特定程式語言中不可用作內建型別的那些資料結構需要從語言中內建的那些資料結構中構造
TYPE <identifier1>
DECLARE <identifier2> : <data type>
DECLARE <identifier3> : <data type>
…
ENDTYPE
- 展示 ADT 如何可能從另一個 ADT 實現
- 描述以下 ADT 並演示它們如何從適當的內建型別或其他 ADT 實現:堆疊、佇列、連結串列、字典、二叉樹
堆疊
- 描述並演示此 ADT 如何從適當的內建型別或其他 ADT 實現
佇列
- 描述並演示此 ADT 如何從適當的內建型別或其他 ADT 實現
- 編寫演算法以
連結串列
- 描述並演示此 ADT 如何從適當的內建型別或其他 ADT 實現
- 編寫演算法以
字典
- 描述並演示此 ADT 如何從適當的內建型別或其他 ADT 實現
二叉樹
- 描述並演示此 ADT 如何從適當的內建型別或其他 ADT 實現
4.1.4 遞迴
- 理解遞迴的基本特徵
- 理解如何在程式語言中表達遞迴
- 跟蹤遞迴演算法
- 編寫遞迴演算法
- 理解何時使用遞迴是有益的
- 瞭解編譯器在程式語言中實現遞迴時必須做什麼