● 章 進入算法的世界
1.1 生活中處處都存在算法
1.1.1 算法的定義
1.1.2 算法的條件
1.1.3 時間復雜度O(f(n))
1.2 常見算法介紹
1.2.1 分治法
1.2.2 遞歸法
1.2.3 貪心法
1.2.4 動態規劃法
1.2.5 迭代法
1.2.6 枚舉法
1.2.7 回溯法
課後習題
第2章 常用數據結構
2.1 認識數據結構
2.2 數據結構的種類
2.2.1 數組
2.2.2 鏈表
2.2.3 堆棧
2.2.4 隊列
2.3 樹結構
2.3.1 樹的基本概念
2.3.2 樹結構專有名詞的簡介
2.3.3 二叉樹
2.4 圖論簡介
2.5 哈希表
課後習題
第3章 排序算法
3.1 認識排序
3.2 冒泡排序法
3.3 選擇排序法
3.4 插入排序法
3.5 希爾排序法
3.6 合並排序法
3.7 快速排序法
3.8 基數排序法
課後習題
第4章 查找與哈希算法
4.1 常見查找算法的介紹
4.1.1 順序搜索法
4.1.2 二分查找法
4.1.3 插值查找法
4.2 常見的哈希法簡介
4.2.1 除留餘數法
4.2.2 平方取中法
4.2.3 折疊法
4.2.4 數字分析法
4.3 踫撞與溢出問題的處理
4.3.1 線性探測法
4.3.2 平方探測法
4.3.3 再哈希法
課後習題
第5章 數組與鏈表算法
5.1 矩陣
5.1.1 矩陣相加
5.1.2 矩陣相乘
5.1.3 轉置矩陣
5.2 建立單向鏈表
5.2.1 單向鏈表的串接
5.2.2 單向鏈表節點的刪除
5.2.3 單向鏈表的反轉
課後習題
第6章 堆棧與隊列算法
6.1 以數組來實現堆棧
6.2 以鏈表來實現堆棧
6.3 漢諾塔問題的求解算法
6.4 八皇後問題的求解算法
6.5 以數組來實現隊列
6.6 以鏈表來實現隊列
6.7 雙向隊列
6.8 優先隊列
課後習題
第7章 樹結構及其算法
7.1 以數組實現二叉樹
7.2 以鏈表實現二叉樹
7.3 二叉樹遍歷
7.4 二叉樹節點的查找
7.5 二叉樹節點的插入
7.6 二叉樹節點的刪除
7.7 堆積樹排序法
課後習題
第8章 圖結構及其算法
8.1 圖的遍歷
8.1.1 深度優先遍歷法
8.1.2 廣度優先遍歷法
8.2 最小生成樹
8.2.1 Prim算法
8.2.2 Kruskal算法
8.3 圖的最短路徑法
8.3.1 Dijkstra算法與A*算法
8.3.2 Floyd算法
課後習題
附錄A 課後習題與解答
內容簡介
本書是一本綜合講述數據結構及其算法的入門書,力求簡潔、清晰、嚴謹且易於學習和掌握。 全書從基本的數據結構概念開始講解,包括數組結構、隊列、堆棧、樹結構、排序、查找等;接著介紹常用的算法,包括分治法、遞歸法、貪心法、動態規劃法、迭代法、枚舉法、回溯法等,每個經典的算法都提供了C程序設計語言編寫的完整範例程序;很後在每章末尾都安排了大量的習題,這些題目包含各類考試的例題,希望讀者能靈活地應用所學的各種知識。本書圖文並茂,敘述簡潔、清晰,範例豐富、可操作性強,針對具有一定編程能力又想提高編程“深度”的非信息專業類人員或學生,是一本數據結構普及型的教科書或自學參考書。