《數據結構算法——C++ Builder 6.0程式集》是2005年中國水利水電出版社出版的圖書,作者是侯識忠等。
基本介紹
內容簡介,目錄,
內容簡介
本書收集了當前國內幾本比較流行的數據結構算法書中的算法,在C++ Builder 6.0平台上將其編寫成可以直接運行的程式。對有些算法,還給出了多種程式設計方案實現,以迅速提高程式設計師的算法與程式設計能力。
本書遵循數據結構算法書中的體系,將全書分為九章,分別是:順序存儲結構的表、堆疊和佇列;鏈式存儲結構的表、堆疊和佇列;數組、串和廣義表;弟歸;樹和二叉樹;圖;排序;查找;檔案。本書配有光碟,內含 程式原始碼以及執行檔。
本書適合想要通過編程實例學習數據結構的C++程式設計師,也可以作為高校師生中學習計算機編程與數據結構的人員的參考書,尤其適合報考計算機軟體專業研究生的人員與參加信息奧賽班學習的人員參考。
本書遵循數據結構算法書中的體系,將全書分為九章,分別是:順序存儲結構的表、堆疊和佇列;鏈式存儲結構的表、堆疊和佇列;數組、串和廣義表;弟歸;樹和二叉樹;圖;排序;查找;檔案。本書配有光碟,內含 程式原始碼以及執行檔。
本書適合想要通過編程實例學習數據結構的C++程式設計師,也可以作為高校師生中學習計算機編程與數據結構的人員的參考書,尤其適合報考計算機軟體專業研究生的人員與參加信息奧賽班學習的人員參考。
目錄
前言
第1章 順序存儲結構的表、堆疊和佇列
1.1 線性表的數組表示和實現
1.1.1 程式構思
1.1.2 線性表的類定義linelistl_h
1.1.3 線性表的實現linelistl.cpp
1.1.4 線性表的測試1inelistlm.cpp
1.1.5 linelistlm.cpp運行結果
1.1.6 分析
1.2 線性表的動態分配順序表示和實現
1.2.1 程式構思
1.2.2 線性表的類定義linelist2.h
1.2.3 線性表的實現linelist2.cpp
1.2.4 線性表的測試linelist2m.cpp
1.2.5 linelist2m.cpp運行結果
1.2.6 分析
1.3 順序堆疊的類定義(動態分配)和實現
1.3.1 程式構思
1.3.2 順序棧的類定義stackl.h
1.3.3 順序棧的實現stackl.cpp
1.3.4 順序棧的測試stacklM.cpp
1.3.5 stacklM.cpp運行結果
1.4 順序堆疊的類定義(動態分配)和實現
1.4.1 程式構思
1.4.2 順序棧的類定義stack.h
1.4.3 順序棧的實現stack.cpp
1.4.4 順序棧的測試stackmain.cpp
1.4.5 stackmain.cpp運行結果
1.5 順序堆疊的類定義(數組表示)和實現
1.5.1 程式構思
1.5.2 順序堆疊的類定義linearStackl.h
1.5.3 順序堆疊的實現linearStackl.cpp
1.5.4 順序堆疊的測試linearStacklm.cpp
1.5.5 linearStacklm.cpp運行結果
1.5.6 分析
1.6 將中綴表達式轉換為後綴表達式
1.7 十進制數轉換成八進制數
1.8 括弧匹配的檢驗
1.9 行編輯程式
1.10 行編輯程式
1.11 表達式求值
1.12 順序循環佇列的類定義(數組表示)和實現
1.12.1 程式構思
1.12.2 順序循環佇列的類定義queuel.h
1.12.3 順序循環佇列的實現queuel.cpp
1.12.4 順序循環佇列的測試queuelm.cpp
1.12.5 queuelm.cpp運行結果
1.13 順序循環佇列的類定義(動態分配)和實現
1.13.1 程式構思
1.13.2 順序循環佇列的類定義queue2.h
1.13.3 順序循環佇列的實現queue2.cpp
1.13.4 順序循環佇列的測試queue2m.cpp
1.13.5 queue2m.cpp運行結果
1.14 循環雙端佇列順序表示和實現
1.14.1 程式構思
1.14.2 循環雙端佇列順序表示duilie.cpp
1.14.3 循環雙端佇列實現
1.14.4 循環雙端佇列的測試
1.14.5 duilie.cpp運行結果
1.14.6 分析
1.15 不考慮優先權相同元素的先進先出問題的順序優先權佇列
1.15.1 程式構思
1.15.2 不考慮優先權相同元素的先進先出問題的順序優先權佇列類定義SqPQueue.h
1.15.3 順序優先權佇列的實現sqPQueue.cpp
1.15.4 順序優先權佇列的測試SqPQueuem.cpp
1.15.5 SqPQueuem.cpp運行結果
1.16 考慮優先權相同元素的先進先出問題的順序優先權佇列
1.16.1 程式構思
1.16.2 考慮優先權相同元素的先進先出問題的順序優先權佇列類定義SPOueue-h
1.16.3 順序優先權佇列的實現sPQueue.cpp
1.16.4 順序優先權佇列的測試sPQueuem.cpp
1.16.5 SPQueuem.cpp運行結果
1.16.6分析
第2章 鏈式存儲結構的表、堆疊和佇列
2.1 單鍊表的鏈式表示和實現
2.1.1 程式構思
2.1.2 單鍊表的類定義linklist3.h
2.1.3 單鍊表的實現linklist3.cpp
2.1.4 單鍊表的測試linklist3m.cpp
2.1.5 linklist3m.cpp運行結果
2.1.6 分析
2.2 鏈式堆疊的類定義(動態分配)和實現
2.2.1 程式構思
2.2.2 鏈式堆疊的類定義linearStack2.h
2.2.3 鏈式堆疊的實現linearStack2.cpp
2.2.4 鏈式堆疊的測試linearstack2m.cpp
2.2.5 linearStack2m.cpp運行結果
2.2.6 分析
2.3 後綴表達式求值
2.4 鏈式佇列的類定義和實現
2.4.1 程式構思
2.4.2 鏈式佇列的類定義linqueue.h
2.4.3 鏈式佇列的實現linqueue.cpp
2.4.4 鏈式佇列的測試linqueuem.cpp
2.4.5 linqueuem.cpp運行結果
2.5 單循環鍊表類定義和實現
2.5.1 程式構思
2.5.2 單循環鍊表的類定義cirlinklist.h
2.5.3 單循環鍊表的實現cirlinklist.cpp
2.5.4 單循環鍊表的測試與套用cirlinklistm.cpp
2.5.5 cirlinklistm.cpp運行結果
2.5.6 分析
2.6 雙向循環鍊表的類定義和實現
2.6.1 程式構思
2.6.2 雙向循環鍊表的類定義dcirlinkl.h
2.6.3 向循環鍊表的實現dcirlinkl.cpp
2.6.4 向循環鍊表的測試與套用dcirlinklm.cpp
2.6.5 dcirlinklm.cpp運行結果
2.6.6 分析
2.7 迷宮求解
第3章 數組、串和廣義表
3.1 變長參數表的套用
3.2 建立一維、二維數組的類定義和實現
3.2.1 程式構思
3.2.2 建立一維、二維數組的類定義intarray.h
3.2.3 建立一維、二維數組的類實現intarray.cpp
3.2.4 建立一維、二維數組的類測試intarraym.cpp
3.2.5 intarraym.cpp運行結果
3.3 稀疏矩陣的類定義與操作
3.3.1 程式構思
3.3.2 稀疏矩陣的類定義與操作xishu.h
3.3.3 稀疏矩陣相關操作的測試xishuM.cpp
3.3.4 xishuM.cpp運行結果
3.4 十字鍊表的定義與相關操作
3.4.1 程式構思
3.4.2 十字鍊表的定義與相關操作xishuM1.cpp
3.4.3 十字鍊表的操作測試
3.4.4 xishuMl.cpp運行結果
3.5 十字鍊表的定義與相關操作
3.5.1 程式構思
3.5.2 十字鍊表的類定義與相關操作xishuM2.cpp
3.5.3 十字鍊表相關操作的測試
3.5.4 xishuM2.cpp運行結果
3.6 十字鍊表的定義與相關操作
3.6.1 程式構思
3.6.2 十字鍊表的定義與相關操作xishuM3.cpp
3.6.3 十字鍊表相關操作的測試
3.6.4 xishuM3.cpp運行結果
3.7 十字鍊表的定義與相關操作
3.7.1 程式構思
3.7.2 十字鍊表的類定義與相關操作xishuM4.cpp
3.7.3 十字鍊表相關操作的測試
3.7.4 xishuM4.cpp運行結果
3.8 廣義表的類定義和實現
3.8.1 程式構思
3.8.2廣義表的類定義guangyi.h
3.8.3 廣義表的類實現guangyi.cpp
3.8.4 廣義表的相關操作的測試guangyiM.cpp
3.8.5 guangyiM.cpp運行結果
3.8.6 分析
3.9 字元串的模式匹配
3.9.1 程式構思
3.9.2 字元串的模式匹配測試
3.9.3 Findstr.cpp運行結果
3.10 串模式匹配的類定義和實現
3.10.1 程式構思
3.10.2 串模式匹配的類定義FindSub.cpp
3.10.3 串模式匹配的類實現
3.10.4 串模式匹配的測試
3.10.5 FindSub.cpp運行結果
第4章 遞歸
4.1 遞歸運算(棧的套用)
4.1.1 程式構思
4.1.2 遞歸運算(棧的套用)Recurve.cpp
4.1.3 鏈式棧類實現
4.1.4 鏈式棧類操作測試
4.1.5 Recurve.cpp運行結果
4.1.6 分析
4.2 使用回溯法求解迷宮問題
4.2.1 程式構思
4.2.2 路口的結構體定義migong.cpp
4.2.3 迷宮類定義與實現
4.2.4 迷宮類的測試
4.2.5 migong.cpp運行結果
第5章 樹和二叉樹
5.1 樹的類定義和實現
5.1.1 程式構思
5.1.2 樹的孩子兄弟表示法為存儲結構的結構體Tree.h
5.1.3 樹類的實現Tree.cpp
5.1.4 樹類相關操作的測試TreeM.cpp
5.1.5 TreeM.cpp運行結果
5.2 二叉樹的類定義和實現
5.2.1 程式構思
5.2.2 二叉樹類定義btree2.h
5.2.3 二叉樹類的實現btree2.cpp
5.2.4 二又樹類相關操作的測試btree2M.cpp
5.2.5 btree2M.cpp運行結果
5.2.6 分析
5.3 二叉樹的類定義和實現
5.3.1 程式構思
5.3.2 二叉樹類定義btree.h
5.3.3 二叉樹類的實現btree.cpp
5.3.4 二叉樹類相關操作的測試btreeM.cpp
5.3.5 btreeM.cpp運行結果
5.3.6 分析
5.4 二叉搜尋樹的類定義和實現
5.4.1 程式構思
5.4.2 二叉搜尋樹的類定義BSTree.h
5.4.3 二叉搜尋樹類的實現BsTree.cpp
5.4.4 二叉搜尋樹相關操作的測試BSTreeM.cpp
5.4.5 BSTreeM.cpp運行結果
5.5 二叉搜尋樹的類定義和實現
5.5.1 程式構思
5.5.2 二叉搜尋樹的類定義與實現BSTREEl.h
5.5.3 二叉搜尋樹類的實現
5.5.4 二叉搜尋樹的類型測試BSTreelM.cpp
5.5.5 BSTreelM.cpp運行結果
5.6 二叉搜尋樹的類定義和實現
5.6.1 程式構思
5.6.2 二叉搜尋樹的類定義BSTreeF.h
5.6.3 二叉搜尋樹類的實現BSTreeF.cpp
5.6.4 二叉搜尋樹類的相關操作的測試BSTreeFM.cpp
5.6.5 BSTreeFM.cpp運行結果
5.7 線索二叉樹類定義和實現
5.7.1 程式構思
5.7.2 線索二叉樹結點類型存儲結構體TBSTree.h
5.7.3 線索二叉樹類的實現
5.7.4 線索二叉樹類相關操作的測試TBSTreeM.cpp
5.7.5 TBSTreeM.cpp運行結果
5.8 線索二又樹類定義和實現
5.8.1 程式構思
5.8.2 線索二叉樹結點類型存儲結構體TBSTreel-h
5.8.3 線索二叉樹類的實現
5.8.4 線索二叉樹類相關操作的測試TBSTreelM.cpp
5.8.5 TBSTreelM.cpp運行結果
5.9 線索二叉樹類定義和實現
5.9.1 程式構思
5.9.2 線索二叉樹結點類型存儲結構體TBSTree2.h
5.9.3 線索二叉樹類與派生類的實現
5.9.4 線索二叉樹類相關操作的測試TBSTree2M.cpp
5.9.5 TBSTree2M.cpp運行結果
5.10 赫夫曼樹與赫夫曼編碼
5.10.1 程式構思
5.10.2 赫夫曼樹與赫夫曼編碼Huffman.cpp
5.10.3 類實現
5.10.4 赫夫曼編碼問題的測試
5.10.5 Huffman.cpp運行結果
5.11 赫夫曼樹與赫夫曼編碼
5.12 赫夫曼樹與赫夫曼編碼
5.13 線性表的動態分配順序表示和實現
5.14 最小堆的類定義和實現
5.14.1 程式構思
5.14.2 最小堆的類定義minheaD-h
5.14.3 最小堆的實現millheap.cpp
5.14.4 最小堆類的測試minheapm.cpp
5.14.5 minheapm.cpp運行結果
5.15 利用最小堆相關操作進行堆排序
5.16 最大堆的類定義和實現
5.16.1 程式構思
5.16.2 最大堆的類定義maXheap.h
5.16.3 最大堆的實現maxheap.cpp
5.16.4 最大堆類的測試maxheapm.cpp
5.16.5 maxheapm.cpp運行結果
5.17 利用最大堆相關操作進行堆排序
第6章 圖
6.1 圖的類定義和實現
6.1.1 程式構思
6.1.2 圖的相關數據類型的定義graph.h
6.1.3 圖的相關運算的實現graph.cpp
6.1.4 圖的相關運算的測試graphM.cpp
6.1.5 graphM.cpp運行結果
6.2 圖的類定義和實現
6.2.1 程式構思
6.2.2 圖的相關數據類型的定義graphO.h
6.2.3 圖的相關運算的實現graphO.cpp
6.2.4 圖的相關運算的測試graphOM.cpp
6.2.5 graph0M.cpp運行結果
6.2.6 分析
6.3 圖的類定義和實現
6.3.1 程式構思
6.3.2 圖的相關數據類型的定義graphl.h
6.3.3 圖的相關運算的實現graphl.cpp
6.3.4 圖的相關運算的測試graphlM.cpp
6.3.5 graph1M.cpp運行結果
6.4 利用普里姆算法求出用鄰接矩陣表示的圖的最小生成樹
6.4.1 程式構思
6.4.2 圖的相關數據類型的定義graph2.h
6.4.3 圖的運算的實現檔案graph2.cpp
6.4.4 圖的相關運算的測試graph2M.cpp
6.4.5 graph2M.cpp運行結果
6.4.6 分析
6.5 利用克魯斯卡爾方法求邊集數組所示圖的最小生成樹
6.5.1 程式構思
6.5.2 圖的相關數據類型的定義graph3.h
6.5.3 圖的運算的實現檔案graph3.cpp
6.5.4 圖的相關運算的測試graph3M.cpp
6.5.5 graph3M.cpp運行結果
6.5.6 分析
6.6 狄克斯特拉算法(從一個頂點到其餘各頂點的最短路徑)
6.6.1 程式構思
6.6.2 最短路徑(狄克斯特拉算法)PshortP.h
6.6.3 狄克斯特拉算法測試PshortPM.cpp
6.6.4 PShortPM.cpp運行結果
6.6.5 分析
6.7 最短路徑(從一個頂點到其餘各頂點的最短路徑)
6.7.1 程式構思
6.7.2 最短路徑(狄克斯特拉算法)PshortPl.cpp
6.7.3 算法測試
6.7.4 PShortP1.cpp運行結果
6.7.5 分析
6.8 最短路徑(所有頂點之間的最短路徑)
6.8.1 程式構思
6.8.2 最短路徑SShortP.cpp
6.8.3 算法測試
6.8.4 SShortP.cpp運行結果
6.8.5 分析
6.9 最短路徑(所有頂點之間的最短路徑)
6.9.1 程式構思
6.9.2 最短路徑SShortP1.cpp
6.9.3 算法測試
6.9.4 SShortP1.cpp運行結果
6.9.5 分析
6.10 最短路徑(弗洛伊德算法、所有頂點之間的最短路徑)
6.10.1 程式構思
6.10.2 最短路徑(弗洛伊德算法)FloydP.h
6.10.3 弗洛伊德算法測試FloydP.cpp
6.10.4 FloydP.cpp運行結果
6.10.5 分析
6.11 最短路徑(弗洛伊德算法、所有頂點之間的最短路徑)
6.11.1 程式構思
6.11.2 弗洛伊德算法測試FloydPl.cpp
6.11.3 FloydPl.cpp運行結果
6.11.4 分析
6.12 拓撲排序
第7章 排序
7.1 桶排序
7.2 插入排序法(類方法)
7.3 插入排序法(類方法)
7.4 插入排序法
7.5 希爾排序法(類方法)
7.6 希爾排序
7.7 快速排序(類方法)
7.8 快速排序(類方法)
7.9 快速排序
7.10 快速排序
7.11 通用選擇排序法
7.12 選擇排序
7.13 選擇排序法(下沉)
7.14 選擇排序法(類方法)
7.15 選擇排序法(函式模板、排序不改變原數組各元素的值)
7.16 選擇排序法(函式模板、上浮)
7.17 選擇排序法(排序後不改變原數組各元素的值)
7.18 通用冒泡排序法(下沉)
7.19 冒泡排序法(上浮)
7.20 冒泡排序法(下沉)
7.21 通用冒泡排序法(上浮)
7.22 歸併排序(類方法)
7.23 歸併排序法
7.24 堆排序法(類方法)
7.25 堆排序法
7.26 堆排序法(疊代器)
7.27 基數排序法(類方法)
7.28 基數排序法(函式模板)
7.29 錦標賽排序法
7.30 多種排序方法
7.31 K路平衡歸併
7.32 對外存檔案(磁碟檔案)進行選擇排序的算法
7.33 外存檔案的排序操作(二路平衡歸併)
第8章 查找
8.1 分查找法(遞歸調用)
8.2 二分查找法(非遞歸調用)
8.3 二叉排序樹的類定義與實現
8.3.1 程式構思
8.3.2 二叉排序樹的類定義
8.3.3 二叉排序樹的類實現
8.3.4 二叉排序樹類的測試
8.3.5 BinSortT.cpp運行結果
8.4 Fibonacci查找法
8.5 平衡二叉搜尋樹類定義與實現
8.5.1 程式構思
8.5.2 平衡二叉搜尋樹類定義與實現AVLTREE.h
8.5.3 平衡二叉搜尋樹的類模板實現
8.5.4 平衡二叉搜尋樹類測試AVLTREEM.cpp
8.5.5 AVLTREEM.cpp運行結果
8.5.6 分析
8.6 順頃序表的查找
8.7 B-樹的操作
8.7.1 程式構思
8.7.2 B-樹的操作B Tree.cpp
8.7.3 B-樹的相關操作的測試
8.7.4 B_Tree.cpp運行結果
8.8 B-樹的(類方法)操作
8.8.1 程式構思
8.8.2 B-樹的結點類型定義
8.8.3 B-樹的類實現
8.8.4 B-樹的類相關操作的測試
8.8.5 B_Treel.cpp運行結果
8.9 哈希表
8.9.1 程式構思
8.9.2 哈希表的結點類型定義
8.9.3 哈希表的操作實現
8.9.4 哈希表的相關操作的測試
8.9.5 hashtable.cpp運行結果
8.10 散列表類定義與實現
8.10.1 程式構思
8.10.2 散列表類定義LHashL.h
8.10.3 散列表類的實現LHashL.cpp
8.10.4 散列表類的相關操作的測試
8.10.5 LHashLM.cpp運行結果
8.10.6 分析
第9章 檔案
9.1 散列檔案的插入、刪除和查找操作
9.1.1 程式構思
9.1.2 散列檔案的類模板定義、插入、刪除和查找操作HashFM.cpp
9.1.3 散列檔案的類模板實現
9.1.4 散列檔案的類模板實現的測試
9.1.5 HashFM.cpp運行結果
9.2 索引檔案的相關操作
9.2.1 程式構思
9.2.2 索引檔案的相關操作IndexF.cpp
9.2.3 索引檔案的類模板實現
9.2.4 索引檔案的類模板實現的測試IndexFM.cpp
9.2.5 IndexFM.cpp運行結果
參考文獻
第1章 順序存儲結構的表、堆疊和佇列
1.1 線性表的數組表示和實現
1.1.1 程式構思
1.1.2 線性表的類定義linelistl_h
1.1.3 線性表的實現linelistl.cpp
1.1.4 線性表的測試1inelistlm.cpp
1.1.5 linelistlm.cpp運行結果
1.1.6 分析
1.2 線性表的動態分配順序表示和實現
1.2.1 程式構思
1.2.2 線性表的類定義linelist2.h
1.2.3 線性表的實現linelist2.cpp
1.2.4 線性表的測試linelist2m.cpp
1.2.5 linelist2m.cpp運行結果
1.2.6 分析
1.3 順序堆疊的類定義(動態分配)和實現
1.3.1 程式構思
1.3.2 順序棧的類定義stackl.h
1.3.3 順序棧的實現stackl.cpp
1.3.4 順序棧的測試stacklM.cpp
1.3.5 stacklM.cpp運行結果
1.4 順序堆疊的類定義(動態分配)和實現
1.4.1 程式構思
1.4.2 順序棧的類定義stack.h
1.4.3 順序棧的實現stack.cpp
1.4.4 順序棧的測試stackmain.cpp
1.4.5 stackmain.cpp運行結果
1.5 順序堆疊的類定義(數組表示)和實現
1.5.1 程式構思
1.5.2 順序堆疊的類定義linearStackl.h
1.5.3 順序堆疊的實現linearStackl.cpp
1.5.4 順序堆疊的測試linearStacklm.cpp
1.5.5 linearStacklm.cpp運行結果
1.5.6 分析
1.6 將中綴表達式轉換為後綴表達式
1.7 十進制數轉換成八進制數
1.8 括弧匹配的檢驗
1.9 行編輯程式
1.10 行編輯程式
1.11 表達式求值
1.12 順序循環佇列的類定義(數組表示)和實現
1.12.1 程式構思
1.12.2 順序循環佇列的類定義queuel.h
1.12.3 順序循環佇列的實現queuel.cpp
1.12.4 順序循環佇列的測試queuelm.cpp
1.12.5 queuelm.cpp運行結果
1.13 順序循環佇列的類定義(動態分配)和實現
1.13.1 程式構思
1.13.2 順序循環佇列的類定義queue2.h
1.13.3 順序循環佇列的實現queue2.cpp
1.13.4 順序循環佇列的測試queue2m.cpp
1.13.5 queue2m.cpp運行結果
1.14 循環雙端佇列順序表示和實現
1.14.1 程式構思
1.14.2 循環雙端佇列順序表示duilie.cpp
1.14.3 循環雙端佇列實現
1.14.4 循環雙端佇列的測試
1.14.5 duilie.cpp運行結果
1.14.6 分析
1.15 不考慮優先權相同元素的先進先出問題的順序優先權佇列
1.15.1 程式構思
1.15.2 不考慮優先權相同元素的先進先出問題的順序優先權佇列類定義SqPQueue.h
1.15.3 順序優先權佇列的實現sqPQueue.cpp
1.15.4 順序優先權佇列的測試SqPQueuem.cpp
1.15.5 SqPQueuem.cpp運行結果
1.16 考慮優先權相同元素的先進先出問題的順序優先權佇列
1.16.1 程式構思
1.16.2 考慮優先權相同元素的先進先出問題的順序優先權佇列類定義SPOueue-h
1.16.3 順序優先權佇列的實現sPQueue.cpp
1.16.4 順序優先權佇列的測試sPQueuem.cpp
1.16.5 SPQueuem.cpp運行結果
1.16.6分析
第2章 鏈式存儲結構的表、堆疊和佇列
2.1 單鍊表的鏈式表示和實現
2.1.1 程式構思
2.1.2 單鍊表的類定義linklist3.h
2.1.3 單鍊表的實現linklist3.cpp
2.1.4 單鍊表的測試linklist3m.cpp
2.1.5 linklist3m.cpp運行結果
2.1.6 分析
2.2 鏈式堆疊的類定義(動態分配)和實現
2.2.1 程式構思
2.2.2 鏈式堆疊的類定義linearStack2.h
2.2.3 鏈式堆疊的實現linearStack2.cpp
2.2.4 鏈式堆疊的測試linearstack2m.cpp
2.2.5 linearStack2m.cpp運行結果
2.2.6 分析
2.3 後綴表達式求值
2.4 鏈式佇列的類定義和實現
2.4.1 程式構思
2.4.2 鏈式佇列的類定義linqueue.h
2.4.3 鏈式佇列的實現linqueue.cpp
2.4.4 鏈式佇列的測試linqueuem.cpp
2.4.5 linqueuem.cpp運行結果
2.5 單循環鍊表類定義和實現
2.5.1 程式構思
2.5.2 單循環鍊表的類定義cirlinklist.h
2.5.3 單循環鍊表的實現cirlinklist.cpp
2.5.4 單循環鍊表的測試與套用cirlinklistm.cpp
2.5.5 cirlinklistm.cpp運行結果
2.5.6 分析
2.6 雙向循環鍊表的類定義和實現
2.6.1 程式構思
2.6.2 雙向循環鍊表的類定義dcirlinkl.h
2.6.3 向循環鍊表的實現dcirlinkl.cpp
2.6.4 向循環鍊表的測試與套用dcirlinklm.cpp
2.6.5 dcirlinklm.cpp運行結果
2.6.6 分析
2.7 迷宮求解
第3章 數組、串和廣義表
3.1 變長參數表的套用
3.2 建立一維、二維數組的類定義和實現
3.2.1 程式構思
3.2.2 建立一維、二維數組的類定義intarray.h
3.2.3 建立一維、二維數組的類實現intarray.cpp
3.2.4 建立一維、二維數組的類測試intarraym.cpp
3.2.5 intarraym.cpp運行結果
3.3 稀疏矩陣的類定義與操作
3.3.1 程式構思
3.3.2 稀疏矩陣的類定義與操作xishu.h
3.3.3 稀疏矩陣相關操作的測試xishuM.cpp
3.3.4 xishuM.cpp運行結果
3.4 十字鍊表的定義與相關操作
3.4.1 程式構思
3.4.2 十字鍊表的定義與相關操作xishuM1.cpp
3.4.3 十字鍊表的操作測試
3.4.4 xishuMl.cpp運行結果
3.5 十字鍊表的定義與相關操作
3.5.1 程式構思
3.5.2 十字鍊表的類定義與相關操作xishuM2.cpp
3.5.3 十字鍊表相關操作的測試
3.5.4 xishuM2.cpp運行結果
3.6 十字鍊表的定義與相關操作
3.6.1 程式構思
3.6.2 十字鍊表的定義與相關操作xishuM3.cpp
3.6.3 十字鍊表相關操作的測試
3.6.4 xishuM3.cpp運行結果
3.7 十字鍊表的定義與相關操作
3.7.1 程式構思
3.7.2 十字鍊表的類定義與相關操作xishuM4.cpp
3.7.3 十字鍊表相關操作的測試
3.7.4 xishuM4.cpp運行結果
3.8 廣義表的類定義和實現
3.8.1 程式構思
3.8.2廣義表的類定義guangyi.h
3.8.3 廣義表的類實現guangyi.cpp
3.8.4 廣義表的相關操作的測試guangyiM.cpp
3.8.5 guangyiM.cpp運行結果
3.8.6 分析
3.9 字元串的模式匹配
3.9.1 程式構思
3.9.2 字元串的模式匹配測試
3.9.3 Findstr.cpp運行結果
3.10 串模式匹配的類定義和實現
3.10.1 程式構思
3.10.2 串模式匹配的類定義FindSub.cpp
3.10.3 串模式匹配的類實現
3.10.4 串模式匹配的測試
3.10.5 FindSub.cpp運行結果
第4章 遞歸
4.1 遞歸運算(棧的套用)
4.1.1 程式構思
4.1.2 遞歸運算(棧的套用)Recurve.cpp
4.1.3 鏈式棧類實現
4.1.4 鏈式棧類操作測試
4.1.5 Recurve.cpp運行結果
4.1.6 分析
4.2 使用回溯法求解迷宮問題
4.2.1 程式構思
4.2.2 路口的結構體定義migong.cpp
4.2.3 迷宮類定義與實現
4.2.4 迷宮類的測試
4.2.5 migong.cpp運行結果
第5章 樹和二叉樹
5.1 樹的類定義和實現
5.1.1 程式構思
5.1.2 樹的孩子兄弟表示法為存儲結構的結構體Tree.h
5.1.3 樹類的實現Tree.cpp
5.1.4 樹類相關操作的測試TreeM.cpp
5.1.5 TreeM.cpp運行結果
5.2 二叉樹的類定義和實現
5.2.1 程式構思
5.2.2 二叉樹類定義btree2.h
5.2.3 二叉樹類的實現btree2.cpp
5.2.4 二又樹類相關操作的測試btree2M.cpp
5.2.5 btree2M.cpp運行結果
5.2.6 分析
5.3 二叉樹的類定義和實現
5.3.1 程式構思
5.3.2 二叉樹類定義btree.h
5.3.3 二叉樹類的實現btree.cpp
5.3.4 二叉樹類相關操作的測試btreeM.cpp
5.3.5 btreeM.cpp運行結果
5.3.6 分析
5.4 二叉搜尋樹的類定義和實現
5.4.1 程式構思
5.4.2 二叉搜尋樹的類定義BSTree.h
5.4.3 二叉搜尋樹類的實現BsTree.cpp
5.4.4 二叉搜尋樹相關操作的測試BSTreeM.cpp
5.4.5 BSTreeM.cpp運行結果
5.5 二叉搜尋樹的類定義和實現
5.5.1 程式構思
5.5.2 二叉搜尋樹的類定義與實現BSTREEl.h
5.5.3 二叉搜尋樹類的實現
5.5.4 二叉搜尋樹的類型測試BSTreelM.cpp
5.5.5 BSTreelM.cpp運行結果
5.6 二叉搜尋樹的類定義和實現
5.6.1 程式構思
5.6.2 二叉搜尋樹的類定義BSTreeF.h
5.6.3 二叉搜尋樹類的實現BSTreeF.cpp
5.6.4 二叉搜尋樹類的相關操作的測試BSTreeFM.cpp
5.6.5 BSTreeFM.cpp運行結果
5.7 線索二叉樹類定義和實現
5.7.1 程式構思
5.7.2 線索二叉樹結點類型存儲結構體TBSTree.h
5.7.3 線索二叉樹類的實現
5.7.4 線索二叉樹類相關操作的測試TBSTreeM.cpp
5.7.5 TBSTreeM.cpp運行結果
5.8 線索二又樹類定義和實現
5.8.1 程式構思
5.8.2 線索二叉樹結點類型存儲結構體TBSTreel-h
5.8.3 線索二叉樹類的實現
5.8.4 線索二叉樹類相關操作的測試TBSTreelM.cpp
5.8.5 TBSTreelM.cpp運行結果
5.9 線索二叉樹類定義和實現
5.9.1 程式構思
5.9.2 線索二叉樹結點類型存儲結構體TBSTree2.h
5.9.3 線索二叉樹類與派生類的實現
5.9.4 線索二叉樹類相關操作的測試TBSTree2M.cpp
5.9.5 TBSTree2M.cpp運行結果
5.10 赫夫曼樹與赫夫曼編碼
5.10.1 程式構思
5.10.2 赫夫曼樹與赫夫曼編碼Huffman.cpp
5.10.3 類實現
5.10.4 赫夫曼編碼問題的測試
5.10.5 Huffman.cpp運行結果
5.11 赫夫曼樹與赫夫曼編碼
5.12 赫夫曼樹與赫夫曼編碼
5.13 線性表的動態分配順序表示和實現
5.14 最小堆的類定義和實現
5.14.1 程式構思
5.14.2 最小堆的類定義minheaD-h
5.14.3 最小堆的實現millheap.cpp
5.14.4 最小堆類的測試minheapm.cpp
5.14.5 minheapm.cpp運行結果
5.15 利用最小堆相關操作進行堆排序
5.16 最大堆的類定義和實現
5.16.1 程式構思
5.16.2 最大堆的類定義maXheap.h
5.16.3 最大堆的實現maxheap.cpp
5.16.4 最大堆類的測試maxheapm.cpp
5.16.5 maxheapm.cpp運行結果
5.17 利用最大堆相關操作進行堆排序
第6章 圖
6.1 圖的類定義和實現
6.1.1 程式構思
6.1.2 圖的相關數據類型的定義graph.h
6.1.3 圖的相關運算的實現graph.cpp
6.1.4 圖的相關運算的測試graphM.cpp
6.1.5 graphM.cpp運行結果
6.2 圖的類定義和實現
6.2.1 程式構思
6.2.2 圖的相關數據類型的定義graphO.h
6.2.3 圖的相關運算的實現graphO.cpp
6.2.4 圖的相關運算的測試graphOM.cpp
6.2.5 graph0M.cpp運行結果
6.2.6 分析
6.3 圖的類定義和實現
6.3.1 程式構思
6.3.2 圖的相關數據類型的定義graphl.h
6.3.3 圖的相關運算的實現graphl.cpp
6.3.4 圖的相關運算的測試graphlM.cpp
6.3.5 graph1M.cpp運行結果
6.4 利用普里姆算法求出用鄰接矩陣表示的圖的最小生成樹
6.4.1 程式構思
6.4.2 圖的相關數據類型的定義graph2.h
6.4.3 圖的運算的實現檔案graph2.cpp
6.4.4 圖的相關運算的測試graph2M.cpp
6.4.5 graph2M.cpp運行結果
6.4.6 分析
6.5 利用克魯斯卡爾方法求邊集數組所示圖的最小生成樹
6.5.1 程式構思
6.5.2 圖的相關數據類型的定義graph3.h
6.5.3 圖的運算的實現檔案graph3.cpp
6.5.4 圖的相關運算的測試graph3M.cpp
6.5.5 graph3M.cpp運行結果
6.5.6 分析
6.6 狄克斯特拉算法(從一個頂點到其餘各頂點的最短路徑)
6.6.1 程式構思
6.6.2 最短路徑(狄克斯特拉算法)PshortP.h
6.6.3 狄克斯特拉算法測試PshortPM.cpp
6.6.4 PShortPM.cpp運行結果
6.6.5 分析
6.7 最短路徑(從一個頂點到其餘各頂點的最短路徑)
6.7.1 程式構思
6.7.2 最短路徑(狄克斯特拉算法)PshortPl.cpp
6.7.3 算法測試
6.7.4 PShortP1.cpp運行結果
6.7.5 分析
6.8 最短路徑(所有頂點之間的最短路徑)
6.8.1 程式構思
6.8.2 最短路徑SShortP.cpp
6.8.3 算法測試
6.8.4 SShortP.cpp運行結果
6.8.5 分析
6.9 最短路徑(所有頂點之間的最短路徑)
6.9.1 程式構思
6.9.2 最短路徑SShortP1.cpp
6.9.3 算法測試
6.9.4 SShortP1.cpp運行結果
6.9.5 分析
6.10 最短路徑(弗洛伊德算法、所有頂點之間的最短路徑)
6.10.1 程式構思
6.10.2 最短路徑(弗洛伊德算法)FloydP.h
6.10.3 弗洛伊德算法測試FloydP.cpp
6.10.4 FloydP.cpp運行結果
6.10.5 分析
6.11 最短路徑(弗洛伊德算法、所有頂點之間的最短路徑)
6.11.1 程式構思
6.11.2 弗洛伊德算法測試FloydPl.cpp
6.11.3 FloydPl.cpp運行結果
6.11.4 分析
6.12 拓撲排序
第7章 排序
7.1 桶排序
7.2 插入排序法(類方法)
7.3 插入排序法(類方法)
7.4 插入排序法
7.5 希爾排序法(類方法)
7.6 希爾排序
7.7 快速排序(類方法)
7.8 快速排序(類方法)
7.9 快速排序
7.10 快速排序
7.11 通用選擇排序法
7.12 選擇排序
7.13 選擇排序法(下沉)
7.14 選擇排序法(類方法)
7.15 選擇排序法(函式模板、排序不改變原數組各元素的值)
7.16 選擇排序法(函式模板、上浮)
7.17 選擇排序法(排序後不改變原數組各元素的值)
7.18 通用冒泡排序法(下沉)
7.19 冒泡排序法(上浮)
7.20 冒泡排序法(下沉)
7.21 通用冒泡排序法(上浮)
7.22 歸併排序(類方法)
7.23 歸併排序法
7.24 堆排序法(類方法)
7.25 堆排序法
7.26 堆排序法(疊代器)
7.27 基數排序法(類方法)
7.28 基數排序法(函式模板)
7.29 錦標賽排序法
7.30 多種排序方法
7.31 K路平衡歸併
7.32 對外存檔案(磁碟檔案)進行選擇排序的算法
7.33 外存檔案的排序操作(二路平衡歸併)
第8章 查找
8.1 分查找法(遞歸調用)
8.2 二分查找法(非遞歸調用)
8.3 二叉排序樹的類定義與實現
8.3.1 程式構思
8.3.2 二叉排序樹的類定義
8.3.3 二叉排序樹的類實現
8.3.4 二叉排序樹類的測試
8.3.5 BinSortT.cpp運行結果
8.4 Fibonacci查找法
8.5 平衡二叉搜尋樹類定義與實現
8.5.1 程式構思
8.5.2 平衡二叉搜尋樹類定義與實現AVLTREE.h
8.5.3 平衡二叉搜尋樹的類模板實現
8.5.4 平衡二叉搜尋樹類測試AVLTREEM.cpp
8.5.5 AVLTREEM.cpp運行結果
8.5.6 分析
8.6 順頃序表的查找
8.7 B-樹的操作
8.7.1 程式構思
8.7.2 B-樹的操作B Tree.cpp
8.7.3 B-樹的相關操作的測試
8.7.4 B_Tree.cpp運行結果
8.8 B-樹的(類方法)操作
8.8.1 程式構思
8.8.2 B-樹的結點類型定義
8.8.3 B-樹的類實現
8.8.4 B-樹的類相關操作的測試
8.8.5 B_Treel.cpp運行結果
8.9 哈希表
8.9.1 程式構思
8.9.2 哈希表的結點類型定義
8.9.3 哈希表的操作實現
8.9.4 哈希表的相關操作的測試
8.9.5 hashtable.cpp運行結果
8.10 散列表類定義與實現
8.10.1 程式構思
8.10.2 散列表類定義LHashL.h
8.10.3 散列表類的實現LHashL.cpp
8.10.4 散列表類的相關操作的測試
8.10.5 LHashLM.cpp運行結果
8.10.6 分析
第9章 檔案
9.1 散列檔案的插入、刪除和查找操作
9.1.1 程式構思
9.1.2 散列檔案的類模板定義、插入、刪除和查找操作HashFM.cpp
9.1.3 散列檔案的類模板實現
9.1.4 散列檔案的類模板實現的測試
9.1.5 HashFM.cpp運行結果
9.2 索引檔案的相關操作
9.2.1 程式構思
9.2.2 索引檔案的相關操作IndexF.cpp
9.2.3 索引檔案的類模板實現
9.2.4 索引檔案的類模板實現的測試IndexFM.cpp
9.2.5 IndexFM.cpp運行結果
參考文獻