數據結構與算法(C++語言版)
耿祥義、張躍平
相關主題
商品描述
目錄大綱
目錄
第1章數據結構概述
1.1邏輯結構
1.2物理結構
1.3算法與結構
1.4C++版本的說明
習題1
第2章算法復雜度
2.1算法
2.2算法的復雜度
2.3常見的復雜度
習題2
第3章遞歸算法
3.1遞歸算法簡介
3.2線性遞歸與非線性遞歸
3.2.1線性遞歸
3.2.2非線性遞歸
3.3問題與子問題
3.4遞歸與疊代
3.5多重遞歸
3.6經典遞歸
3.6.1楊輝三角形
3.6.2老鼠走迷宮
3.6.3漢諾塔
3.7優化遞歸
習題3
第4章數組
4.1數組與參數存值
4.2數組與排序
4.2.1快速排序
4.2.2歸並排序
4.2.3計數排序
4.2.4動態排序
4.3數組的二分查找
4.3.1二分法
4.3.2過濾數組
4.4數組的復制
4.4.1復制數組的函數
4.4.2處理重復數據
4.5數組的比較
4.6數組與洗牌
4.7數組與生命遊戲
習題4
第5章鏈表與list類
5.1鏈表的特點
5.2創建鏈表
5.3遍歷鏈表
5.4查詢與相等
5.5添加節點
5.6刪除節點
5.7更新節點
5.8子鏈表
5.9鏈表的排序
5.10合並、倒置和交換鏈表
5.11編寫簡單的鏈表
習題5
第6章順序表與vector類
6.1順序表的特點
6.2順序表的創建與常用函數
6.3順序表與最長遞增子數組
6.4順序表與篩選法
6.5順序表與全排列
6.6順序表與組合
6.7順序表與記錄
習題6
第7章棧與stack類
7.1棧的特點
7.2棧的創建與獨特函數
7.3棧與回文串
7.4棧與遞歸
7.5棧與括號匹配
7.6棧與深度優先搜索
7.7棧與後綴表達式
習題7
第8章隊列與deque類
8.1隊列的特點
8.2隊列的創建與獨特函數
8.3隊列與回文串
8.4隊列與加密解密
8.5隊列與約瑟夫問題
8.6隊列與廣度搜索
8.7優先隊列
8.8隊列與排隊
習題8
第9章二叉樹與set類
9.1二叉樹的基本概念
9.2遍歷二叉樹
9.3二叉樹的存儲
9.4平衡二叉樹
9.5二叉查詢樹和平衡二叉查詢樹
9.6創建std::set平衡二叉查詢樹
9.7std::set樹的基本操作
9.8std::set樹與數據統計
9.9std::set樹與過濾數據
9.10std::set樹與節目單
習題9
第10章散列表與unordered_map類
10.1散列結構的特點
10.2簡單的散列函數
10.3創建散列表
10.4散列表的基本操作
10.5遍歷散列表
10.6散列表與字符、單詞頻率
10.7散列表與數據緩存
10.8重載hash()函數
10.9std::map類
習題10
第11章集合與unordered_set類
11.1集合的特點
11.2unordered_set類
11.3集合的基本操作
11.4集合與數據過濾
11.5集合與獲得隨機數
11.6重載hash()函數
習題11
第12章常用算法與algorithm庫
12.1Lambda表達式
12.2動態遍歷算法
12.3復制與替換算法
12.4排序算法
12.5查找算法
12.6刪除與清零算法
12.7反轉與旋轉算法
12.8全排列算法
習題12
第13章圖論
13.1無向圖
13.2有向圖
13.3網絡
13.4圖的存儲
13.5圖的遍歷
13.6測試連通圖
13.7最短路徑
13.8最小生成樹
習題13
第14章經典算法思想
14.1貪心算法
14.2動態規劃
14.3回溯算法
習題14
附錄A運算符重載、模板類和std::string
A.1重載關系運算符
A.2類模板的基礎知識
A.3std::string類
參考文獻