第1章 數據結構和算法簡介
1.1 問題引入
1.1.1 查找電話號碼問題
1.1.2 問題求解基本步驟
1.2 認識數據結構
1.2.1 數據的概念
1.2.2素和數據項
1.2.3 數據結構的概念
1.2.4 數據結構的存儲
1.3 認識算法
1.3.1 算法的定義及特征
1.3.2 算法性能分析與度量
1.4 尋求問題求解的實現方法
本章小結
綜合練習
第2章 解決線性表的編程問題
學習情境:用線性表解決學生成績表的編程
2.1 認識線性表
2.1.1 分析線性表的邏輯結構
2.1.2 識別線性表的基本操作
2.2 用順序表解決線性表的編程問題
2.2.1 用順序表表示線性表
2.2.2 對順序表進行操作
2.2.3 順序表在學生成績表中的應用獨立實踐
2.3 用單鏈表解決線性表的編程問題
2.3.1 用單鏈表表示線性表
2.3.2 對單鏈表進行操作
2.3.3 單鏈表在學生成績表中的應用獨立實踐
2.4 用雙向鏈表解決線性表的編程問題
2.4.1 用雙向鏈表表示線性表
2.4.2 對雙向鏈表進行操作
2.4.3 雙向鏈表在學生成績表中的應用獨立實踐
2.5 用循環鏈表解決線性表的編程問題
2.5.1 用循環鏈表表示線性表
2.5.2 對循環鏈表進行操作
2.5.3 循環鏈表在學生成績表中的應用獨立實踐
2.6 度量不同存儲結構的算法效率
2.6.1 分析順序表的算法效率
2.6.2 分析單鏈表的算法效率
本章小結
綜合練習
第3章 解決堆棧的編程問題
學習情境:用堆棧解決火車車廂重排問題的編程
3.1 認識堆棧
3.1.1 分析堆棧的邏輯結構
3.1.2 識別堆棧的基本操作
3.2 用順序棧解決堆棧的編程問題
3.2.1 用順序棧表示堆棧
3.2.2 對順序棧進行操作
3.2.3 用順序棧解決火車車廂重排問題的編程
3.3 用鏈棧解決堆棧的編程問題
3.3.1 用鏈棧表示堆棧
3.3.2 對鏈棧進行操作
3.3.3 用鏈棧解決火車車廂重排問題的編程
獨立實踐
本章小結
綜合練習
第4章 解決隊列的編程問題
學習情境:用隊列解決銀行排隊叫號軟件的編程
4.1 認識隊列
4.1.1 分析隊列的邏輯結構
4.1.2 識別隊列的基本操作
4.2 用順序隊列解決隊列的編程問題
4.2.1 用順序存儲結構表示隊列
4.2.2 對順序隊列進行操作
4.2.3 用循環順序隊列解決銀行排隊叫號軟件的編程
4.3 用鏈隊列解決隊列的編程問題
4.3.1 用鏈隊列表示隊列
4.3.2 對鏈隊列進行操作
4.3.3 用鏈隊列解決銀行排隊叫號軟件的編程
獨立實踐
本章小結
綜合練習
第5章 解決串的編程問題
學習情境:用串解決“以一敵百”遊戲的編程
5.1 認識串
5.1.1 分析串的邏輯結構
5.1.2 識別串的基本操作
5.2 用順序存儲解決串的編程問題
5.2.1 用順序存儲結構表示串
5.2.2 對順序串進行操作
5.2.3 用順序串解決“以一敵百”遊戲的編程
獨立實踐
本章小結
綜合練習
第6章 解決數組的編程問題
學習情境:用數組解決數學魔術遊戲編程
6.1 認識數組
6.1.1 分析數組的邏輯結構
6.1.2 識別數組的基本操作
6.1.3 用順序存儲結構存儲數組
6.1.4 編程實現數組的基本操作
6.1.5 用數組解決數學魔術遊戲的編程
獨立實踐
學習情境:用特殊矩陣解決查詢城市間的距離的編程
6.2 認識特殊矩陣
6.2.1 分析特殊矩陣的邏輯結構
6.2.2 特殊矩陣的壓縮存儲
6.2.3 用特殊矩陣解決查詢城市間距離的編程
獨立實踐
學習情境:用稀疏矩陣解決超市物品購買數據的編程
6.3 認識稀疏矩陣
6.3.1 描述稀疏矩陣的邏輯結構
6.3.2 稀疏矩陣的壓縮存儲
6.3.3 編程實現稀疏矩陣的基本運算
6.3.4 用稀疏矩陣實現超市物品購買數據的編程
獨立實踐
本章小結
綜合練習
第7章 解決二叉樹的編程問題
學習情境:解決快速搜索磁盤文件中記錄的問題
7.1 認識二叉樹
7.1.1 分析二叉樹的邏輯結構
7.1.2 識別二叉樹的基本操作
7.1.3 識別二叉樹的主要性質
7.2 二叉樹的存儲實現
7.2.1 用順序存儲結構表示二叉樹
7.2.2 用鏈式存儲結構表示二叉樹
7.3 二叉樹的遍歷方法及遞歸實現
7.4 用二叉搜索樹解決快速搜索磁盤文件中記錄的問題
獨立實踐
7.5 二叉樹——哈夫曼樹
7.5.1 哈夫曼樹的基本概念
7.5.2 哈夫曼樹的構造算法
本章小結
綜合練習
第8章 解決樹和森林的編程問題
學習情境:用樹來解決學院組織結構的編程問題
8.1 認識樹
8.1.1 分析樹的邏輯結構
8.1.2 樹的邏輯表示
8.1.3 識別樹的基本操作
8.2 實現樹的存儲
第9章 解決圖的編程問題
第10章 實現排序算法
第11章 執行查詢算法
參考文獻