天天看點

大話資料結構 PDF 下載下傳#yyds幹貨盤點#

目錄
第1章 資料結構緒論
1.1 開場白
1.2 你資料結構怎麼學的?
1.3 資料結構起源
1.4 基本概念和術語
1.4.1 資料
1.4.2 資料元素
1.4.3 資料項
1.4.4 資料對象
1.4.5 資料結構
1.5 邏輯結構與實體結構
1.5.1 邏輯結構
1.5.2 實體結構
1.6 抽象資料類型
1.6.1 資料類型
1.6.2 抽象資料類型
1.7 總結回顧
1.8 結尾語
第2章 算法
2.1 開場白
2.2 資料結構與算法關系
2.3 兩種算法的比較
2.4 算法定義
2.5 算法的特性
2.5.1 輸入輸出
2.5.2 有窮性
2.5.3 确定性
2.5.4 可行性
2.6 算法設計的要求
2.6.1 正确性
2.6.2 可讀性
2.6.3 健壯性
2.6.4 時間效率高和存儲量低
2.7 算法效率的度量方法
2.7.1 事後統計方法
2.7.2 事前分析估算方法
2.8 函數的漸近增長
2.9 算法時間複雜度
2.9.1 算法時間複雜度定義
2.9.2 推導大O階方法
2.9.3 常數階
2.9.4 線性階
2.9.5 對數階
2.9.6 平方階
2.10 常見的時間複雜度
2.11 最壞情況與平均情況
2.12 算法空間複雜度
2.13 總結回顧
2.14 結尾語
第3章 線性表
3.1 開場白
3.2 線性表的定義
3.3 線性表的抽象資料類型
3.4 線性表的順序存儲結構
3.4.1 順序存儲定義
3.4.2 順序存儲方式
3.4.3 資料長度與線性表長度差別
3.4.4 位址計算方法
3.5 順序存儲結構的插入與删除
3.5.1 獲得元素操作
3.5.2 插入操作
3.5.3 删除操作
3.5.4 線性表順序存儲結構的優缺點
3.6 線性表的鍊式存儲結構
3.6.1 順序存儲結構不足的解決辦法
3.6.2 線性表鍊式存儲結構定義
3.6.3 頭指針與頭結點的異同
3.6.4 線性表鍊式存儲結構代碼描述
3.7 單連結清單的讀取
3.8 單連結清單的插入與删除
3.8.1 單連結清單的插入
3.8.2 單連結清單的删除
3.9 單連結清單的整表建立
3.10 單連結清單的整表删除
3.11 單連結清單結構與順序存儲結構優缺點
3.12 靜态連結清單
3.12.1 靜态連結清單的插入操作
3.12.2 靜态連結清單的删除操作
3.12.3 靜态連結清單優缺點
3.13 循環連結清單
3.14 雙向連結清單
3.15 總結回顧
3.16 結尾語
第4章 棧與隊列
4.1 開場白
4.2 棧的定義
4.2.1 棧的定義
4.2.2 進棧出棧變化形式
4.3 棧的抽象資料類型
4.4 棧的順序存儲結構及實作
4.4.1 棧的順序存儲結構
4.4.2 棧的順序存儲結構進棧操作
4.4.3 棧的順序存儲結構出棧操作
4.5 兩棧共享空間
4.6 棧的鍊式存儲結構及實作
4.6.1 棧的鍊式存儲結構
4.6.2 棧的鍊式存儲結構進棧操作
4.6.3 棧的鍊式存儲結構出棧操作
4.7 棧的作用
4.8 棧的應用--遞歸
4.8.1 斐波那契數列實作
4.8.2 遞歸定義
4.9 棧的應用--四則運算表達式求值
4.9.1 字尾(逆波蘭)表示法定義
4.9.2 字尾表達式計算結果
4.9.3 中綴表達式轉字尾表達式
4.10 隊列的定義
4.11 隊列的抽象資料類型
4.12 循環隊列
4.12.1 隊列順序存儲的不足
4.12.2 循環隊列定義
4.13 隊列的鍊式存儲結構及實作
4.13.1 隊列鍊式存儲結構入隊操作
4.13.2 隊列鍊式存儲結構出隊操作
4.14 總結回顧
4.15 結尾語
第5章 串
5.1開場白
05.2 串的定義
5.3 串的比較
5.4 串的抽象資料類型
5.5 串的存儲結構
5.5.1 串的順序存儲結構
5.5.2 串的鍊式存儲結構
5.6 樸素的模式比對算法
5.7 KMP模式比對算法
5.7.1 KMP模式比對算法原理
5.7.2 next數組值推導
5.7.3 KMP模式比對算法實作
5.7.4 KMP模式比對算法改進
5.7.5 nextval數組值推導
5.8 總結回顧
5.9 結尾語
第6章 樹
6.1 開場白
6.2 樹的定義
6.2.1 結點分類
6.2.2 結點間關系
6.2.3 樹的其他相關概念
6.3 樹的抽象資料類型
6.4 樹的存儲結構
6.4.1 雙親表示法
6.4.2 孩子表示法
6.4.3 孩子兄弟表示法
6.5 二叉樹的定義
6.5.1 二叉樹特點
6.5.2 特殊二叉樹
6.6 二叉樹的性質
6.6.1 二叉樹性質1
6.6.2 二叉樹性質2
6.6.3 二叉樹性質3
6.6.4 二叉樹性質4
6.6.5 二叉樹性質5
6.7 二叉樹的存儲結構
6.7.1 二叉樹順序存儲結構
6.7.2 二叉連結清單
6.8 周遊二叉樹
6.8.1 二叉樹周遊原理
6.8.2 二叉樹周遊方法
6.8.3 前序周遊算法
6.8.4 中序周遊算法
6.8.5 後序周遊算法
6.8.6 推導周遊結果
6.9 二叉樹的建立
6.10 線索二叉樹
6.10.1 線索二叉樹原理
6.10.2 線索二叉樹結構實作
6.11 樹、森林與二叉樹的轉換
6.11.1 樹轉換為二叉樹
6.11.2 森林轉換為二叉樹
6.11.3 二叉樹轉換為樹
6.11.4 二叉樹轉換為森林
6.11.5 樹與森林的周遊
6.12 赫夫曼樹及其應用
6.12.1 赫夫曼樹
6.12.2 赫夫曼樹定義與原理
6.12.3 赫夫曼編碼
6.13 總結回顧
6.14 結尾語
第7章 圖
7.1 開場白
7.2 圖的定義
7.2.1 各種圖定義
7.2.2 圖的頂點與邊間關系
7.2.3 連通圖相關術語
7.2.4 圖的定義與術語總結
7.3 圖的抽象資料類型
7.4 圖的存儲結構
7.4.1 鄰接矩陣
7.4.2 鄰接表
7.4.3 十字連結清單
7.4.4 鄰接多重表
7.4.5 邊集數組
7.5 圖的周遊
7.5.1 深度優先周遊
7.5.2 廣度優先周遊
7.6 最小生成樹
7.6.1 普裡姆(Prim)算法
7.6.2 克魯斯卡爾(Kruskal)算法
7.7 最短路徑
7.7.1 迪傑斯特拉(Dijkstra)算法
7.7.2 弗洛伊德(Floyd)算法
7.8 拓撲排序
7.8.1 拓撲排序介紹
7.8.2 拓撲排序算法
7.9 關鍵路徑
7.9.1 關鍵路徑算法原理
7.9.2 關鍵路徑算法
7.10 總結回顧
7.11 結尾語
第8章 查找
8.1 開場白
8.2 查找概論
8.3 順序表查找
8.3.1 順序表查找算法
8.3.2 順序表查找優化
8.4 有序表查找
8.4.1 折半查找
8.4.2 插值查找
8.4.3 斐波那契查找
8.5 線性索引查找
8.5.1 稠密索引
8.5.2 分塊索引
8.5.3 反向索引
8.6 二叉排序樹
8.6.1 二叉排序樹查找操作
8.6.2 二叉排序樹插入操作
8.6.3 二叉排序樹删除操作
8.6.4 二叉排序樹總結
8.7 平衡二叉樹(AVL樹)
8.7.1 平衡二叉樹實作原理
8.7.2 平衡二叉樹實作算法
8.8 多路查找樹(B樹)
8.8.1 2-3樹
8.8.2 2-3-4樹
8.8.3 B樹
8.8.4 B+樹
8.9 散清單查找(哈希表)概述
8.9.1 散清單查找定義
8.9.2 散清單查找步驟
8.10 散列函數的構造方法
8.10.1 直接定址法
8.10.2 數字分析法
8.10.3 平方取中法
8.10.4 折疊法
8.10.5 除留餘數法
8.10.6 随機數法
8.11 處理散列沖突的方法
8.11.1 開放定址法
8.11.2 再散列函數法
8.11.3 鍊位址法
8.11.4 公共溢出區法
8.12 散清單查找實作
8.12.1 散清單查找算法實作
8.12.2 散清單查找性能分析
8.13 總結回顧
8.14 結尾語
第9章 排序
9.1 開場白
9.2 排序的基本概念與分類
9.2.1 排序的穩定性
9.2.2 内排序與外排序
9.2.3 排序用到的結構與函數
9.3 冒泡排序
9.3.1 最簡單排序實作
9.3.2 冒泡排序算法
9.3.3 冒泡排序優化
9.3.4 冒泡排序複雜度分析
9.4 簡單選擇排序
9.4.1 簡單選擇排序算法
9.4.2 簡單選擇排序複雜度分析
9.5 直接插入排序
9.5.1 直接插入排序算法
9.5.2 直接插入排序複雜度分析
9.6 希爾排序
9.6.1 希爾排序原理
9.6.2 希爾排序算法
9.6.3 希爾排序複雜度分析
9.7 堆 排 序
9.7.1 堆排序算法
9.7.2 堆排序複雜度分析
9.8 歸并排序
9.8.1 歸并排序算法
9.8.2 歸并排序複雜度分析
9.8.3 非遞歸實作歸并排序
9.9 快速排序
9.9.1 快速排序算法
9.9.2 快速排序複雜度分析
9.9.3 快速排序優化
1.優化選取樞軸
2.優化不必要的交換
3.優化小數組時的排序方案
4.優化遞歸操作
9.10 總結回顧
9.11 結尾語
附錄 參考文獻           

繼續閱讀