內容簡介
《高級數據結構(C++版)/青少年信息學奧林匹剋競賽實戰輔導叢書》在基本數據結構的基礎上,圍繞一些常用的數據結構,結閤大量實戰例題,深入分析“數據結構是如何服務於算法的”。
《高級數據結構(C++版)/青少年信息學奧林匹剋競賽實戰輔導叢書》主要內容包括:哈希錶、樹與二叉樹、優先隊列與堆、並查集、綫段樹、樹狀數組、伸展樹、Treap、AVL樹、紅一黑樹、SBT、塊狀鏈錶與塊狀樹、後綴樹與後綴數組、樹鏈剖分與動態樹等。
《高級數據結構(C++版)/青少年信息學奧林匹剋競賽實戰輔導叢書》的適用對象包括:中學信息學競賽選手及輔導老師、大學ACM比賽選手及教練、高等院校計算機專業的師生、程序設計愛好者等。
目錄
第1章 哈希錶
1.1 哈希錶的基本原理
1.2 哈希錶的基本概念
1.3 哈希函數的構造
1.4 哈希錶的基本操作
1.5 衝突的處理
1.6 哈希錶的性能分析
1.7 哈希錶的應用舉例
1.8 本章習題
第2章 樹與二叉樹
2.1 樹
2.1.1 樹的存儲結構
2.1.2 樹的遍曆
2.2 二叉樹
2.2.1 普通樹轉換成二叉樹
2.2.2 二叉樹的遍曆
2.2.3 二叉樹的其他操作
2.2.4 二叉樹的形態
2.3 二叉排序樹
2.4 哈夫曼二叉樹
2.5 字典樹
2.6 本章習題
第3章 優先隊列與二叉堆
3.1 優先隊列
3.2 二叉堆
3.2.1 Put操作
3.2.2 Get操作
3.3 可並堆
3.3.1 左偏樹的定義
3.3.2 左偏樹的基本操作
3.4 本章習題
第4章 並查集
4.1 並查集的主要操作
4.2 並查集的實現
4.2.1 並查集的數組實現
4.2.2 並查集的鏈錶實現
4.2.3 並查集的樹實現
4.3 並查集的應用舉例
4.4 本章習題
第5章 綫段樹
5.1 綫段樹的應用背景
5.2 綫段樹的初步實現
5.2.1 綫段樹的結構
5.2.2 綫段樹的性質
5.2.3 綫段樹的存儲
5.2.4 綫段樹的常用操作
5.2.4.1 綫段樹的構造
5.2.4.2 綫段樹的查詢
5.2.4.3 綫段樹的修改
5.2.4.4 綫段樹的延遲修改
5.3 綫段樹在一些經典問題中的應用
5.3.1 逆序對問題
5.3.2 矩形覆蓋問題
5.4 綫段樹的擴展
5.4.1 用綫段樹優化動態規劃
5.4.2 將綫段樹擴展到高維
5.4.3 綫段樹與平衡樹的結閤
5.5 綫段樹與其他數據結構的比較
5.6 綫段樹的應用舉例
5.7 本章習題
第6章 樹狀數組
6.1 樹狀數組的問題模型
6.2 樹狀數組的基本思想
6.3 樹狀數組的實現
6.3.1 子集的劃分方法
6.3.2 查詢前綴和
6.3.3 修改子集和
6.4 樹狀數組的常用技巧
6.4.1 查詢任意區間和
6.4.2 利用sum數組求齣原數組a的某個元素值
6.4.3 找到某個前綴和對應的前綴下標index
6.4.4 成倍擴張/縮減
6.4.5 初始化樹狀數組
6.5 樹狀數組與綫段樹的比較
6.6 樹狀數組擴展到高維的情形
6.7 樹狀數組的應用舉例
6.8 本章習題
第7章 伸展樹
7.1 伸展樹的主要操作
7.1.1 伸展操作
7.1.2 伸展樹的基本操作
7.2 伸展樹的算法實現
7.3 伸展樹的效率分析
7.4 伸展樹的應用舉例
7.5 本章習題
第8章 Treap
8.1 Treap的基本操作
8.2 Treap的算法實現
8.3 Treap的應用舉例
8.4 本章習題
第9章 平衡樹
9.1 AVL樹
9.2 紅一黑樹
9.3 SBT
9.3.1 SBT的基本操作
9.3.2 SBT的效率分析
9.3.3 SBT的算法實現
9.4 本章習題
第10章 塊狀鏈錶與塊狀樹
10.1 塊狀鏈錶的基本思想
10.2 塊狀鏈錶的基本操作
10.3 塊狀鏈錶的擴張
10.3.1 維護區間和以及區間最值
10.3.2 維護局部數據有序化
10.3.3 維護區間翻轉
10.4 塊狀鏈錶與其他數據結構的比較
10.5 分塊思想在樹上的應用——塊狀樹
10.6 塊狀鏈錶的應用舉例
10.7 本章習題
第11章 後綴樹與後綴數組
11.1 後綴樹的簡介
11.2 後綴樹的定義
11.3 後綴樹的構建
11.3.1 後綴樹的樸素構建算法
11.3.2 後綴樹的綫性時間構建算法
11.3.2.1 隱式樹的樸素構建
11.3.2.2 擴展規則約定
11.3.2.3 後綴鏈加速
11.3.2.4 進一步加速
11.3.2.5 後綴樹拓展到多串的形式
11.3.2.6 代碼實現
11.3.2.7 相關證明
11.4 後綴樹的應用
11.4.1 字符串(集閤)的精確匹配
11.4.1.1 情形一
11.4.1.2 情形二
11.4.1.3 情形三
11.4.1.4 情形四
11.4.2 公共子串問題
11.4.2.1 情形五
11.4.2.2 情形六
11.4.2.3 情形七
11.4.2.4 情形八
11.4.2.5 情形九
11.4.3 重復子串問題
11.4.3.1 情形十
11.4.3.2 情形十一
11.4.3.3 情形十二
11.5 後綴數組的簡介
11.6 後綴數組的定義
11.7 後綴數組的構建
11.7.1 一種直接的構建算法
11.7.2 倍增算法
11.7.2.1 倍增算法描述
11.7.2.2 倍增算法代碼
11.7.3 由後綴樹得到後綴數組
11.7.4 DC3算法和DC算法
11.7.4.1 DC3算法
11.7.4.2 DC算法
11.8 LCP的引人
11.9 後綴數組的應用
11.9.1 後綴排序的直接應用
11.9.1.1 Burrows-Wheeler變換
11.9.1.2 多模式串的匹配
11.9.2 通過引入LCP優化
11.9.2.1 多模式串的匹配
11.9.2.2 重復子串問題
11.9.2.3 最長迴文子串
11.9.2.4 最長公共子串
11.9.3 後綴數組的應用舉例
11.10 本章習題
第12章 樹鏈剖分與動態樹
12.1 樹鏈剖分的思想和性質
12.2 樹鏈剖分的實現及應用
12.3 動態樹的初探
12.3.1 動態樹的常用功能
12.3.2 動態樹的簡單情形
12.4 動態樹的實現
12.4.1 動態樹的基本操作及其實現
12.4.1.1 動態樹的問題模型
12.4.1.2 用Splay維護實路徑
12.4.2 動態樹操作的時間復雜度分析
12.4.2.1 動態樹操作的次數
12.4.2.2 Splay操作的平攤時間
12.5 動態樹的經典應用
12.5.1 求最近公共祖先
12.5.2 並查集操作
12.5.3 求最大流
12.5.4 求生成樹
12.6 動態樹的應用舉例
12.7 本章習題
緻謝
高級數據結構(C++版)/青少年信息學奧林匹剋競賽實戰輔導叢書 下載 mobi epub pdf txt 電子書