楊曉光編著的《數(shù)據(jù)結構實例教程(第2版)》對2008年的第1版做了進一步的修訂和完善。修訂過程中,在保持第1版的基本結構和特色基礎上,按照教育部《高等學校計算機科學與技術專業(yè)公共核心知識體系與課程》規(guī)范,以及《全國碩士研究生入學統(tǒng)一考試計算機科學與技術學科聯(lián)考考試大綱》要求,進一步完善了各個知識點。
本書系統(tǒng)介紹了數(shù)據(jù)結構相關理論和基本算法,討論了線性表、堆棧、隊列、樹和圖等數(shù)據(jù)結構的基本概念、邏輯結構、存儲結構,以及在這些結構基礎上所實施的各種操作。本書緊扣實例這個中心,安排了大量通俗易懂的示例,特別是每章都給出一個解決身邊問題的綜合實例,從而幫助讀者更好地理解數(shù)據(jù)結構。全書還提供了大量的例題、習題、實驗、綜合實例和綜合測試。
本書可作為大專院校計算機專業(yè)、軟件工程專業(yè)和電子信息專業(yè)的本、?茖W生的教材和參考書,亦適合于工程技術人員參考。
第1章 數(shù)據(jù)結構概述
1.1 數(shù)據(jù)結構研究的內(nèi)容
1.2 基本概念和術語
1.3 抽象數(shù)據(jù)類型
1.4 算法分析
1.4.1 算法及性質(zhì)
1.4.2 算法度量及分析
1.5 習題
1.6 實驗
第2章 線性表
2.1 線性表的定義及操作
2.1.1 線性表的定義
2.1.2 線性表的抽象數(shù)據(jù)類型
2.2 順序表
2.2.1 順序表的定義
2.2.2 順序表的基本操作
2.3 鏈表
2.3.1 單鏈表
2.3.2 循環(huán)鏈表
2.3.3 雙向鏈表
2.3.4 靜態(tài)鏈表
2.4 順序表與鏈表的比較
2.5 綜合實例——文具店的貨品管理
2.6 習題
2.7 實驗
第3章 棧和隊列
3.1 棧的定義及操作
3.1.1 棧的定義
3.1.2 棧的抽象數(shù)據(jù)類型
3.2 順序棧
3.2.1 順序棧的定義
3.2.2 順序棧的基本操作
3.3 鏈棧
3.3.1 鏈棧的定義
3.3.2 鏈棧的基本操作
3.4 隊列的定義及操作
3.4.1 隊列的定義
3.4.2 隊列的抽象數(shù)據(jù)類型
3.5 順序隊列
3.5.1 順序隊列的定義
3.5.2 順序隊列的基本操作
3.6 鏈隊列
3.6.1 鏈隊列的定義
3.6.2 鏈隊列的基本操作
3.7 棧與隊列的應用
3.7.1 數(shù)制轉(zhuǎn)換
3.7.2 表達式計算
3.7.3 輸入輸出緩沖區(qū)
3.8 綜合實例——停車場管理
3.9 習題
3.10 實驗
第4章 串
4.1 串的基本概念及操作
4.1.1 串的基本概念
4.1.2 串的抽象數(shù)據(jù)類型
4.2 串的順序存儲結構
4.2.1 串的定長順序存儲表示
4.2.2 串的堆存儲表示
4.3 串的鏈式存儲結構
4.4 串的模式匹配
4.4.1 Brute-Force算法
4.4.2 KMP算法
4.5 綜合實例——簡易文本編輯軟件
4.6 習題
4.7 實驗
第5章 數(shù)組和廣義表
5.1 數(shù)組的基本概念及操作
5.1.1 數(shù)組的基本概念
5.1.2 數(shù)組的抽象數(shù)據(jù)類型
5.2 數(shù)組的順序存儲
5.3 特殊矩陣及其壓縮存儲
5.3.1 對稱矩陣與三角矩陣
5.3.2 對角矩陣
5.4 稀疏矩陣
5.4.1 三元組順序表表示
5.4.2 十字鏈表表示
5.5 廣義表
5.5.1 廣義表的基本概念
5.5.2 廣義表的抽象數(shù)據(jù)類型
5.5.3 廣義表的存儲結構
5.6 綜合實例——n階魔方
5.7 習題
5.8 實驗
第6章 樹和二叉樹
6.1 樹
6.1.1 樹的定義
6.1.2 樹的表示方法
6.1.3 樹的抽象數(shù)據(jù)類型
6.1.4 樹的存儲結構
6.2 二叉樹
6.2.1 二叉樹的定義
6.2.2 二叉樹的性質(zhì)
6.2.3 二叉樹的存儲結構
6.2.4 二叉樹的遍歷
6.3 線索二叉樹
6.3.1 線索二叉樹的定義
6.3.2 線索二叉樹的操作
6.4 森林
6.4.1 樹、森林與二叉樹的轉(zhuǎn)換
6.4.2 樹和森林的遍歷
6.5 哈夫曼樹及其應用
6.5.1 哈夫曼樹
6.5.2 哈夫曼編碼
6.6 綜合實例——高校社團管理
6.7 習題
6.8 實驗
第7章 圖
7.1 圖的基本概念
7.1.1 圖的定義
7.1.2 圖的抽象數(shù)據(jù)類型
7.2 圖的存儲結構
7.2.1 鄰接矩陣
7.2.2 鄰接表
7.2.3 十字鏈表
7.2.4 鄰接多重表
7.3 圖的遍歷
7.3.1 深度優(yōu)先搜索
7.3.2 廣度優(yōu)先搜索
7.4 *小生成樹
7.4.1 普里姆算法
7.4.2 克魯斯卡爾算法
7.5 *短路徑
7.5.1 從某個頂點到其余頂點的*短路徑
7.5.2 每對頂點之間的*短路徑
7.6 拓撲排序和關鍵路徑
7.6.1 拓撲排序
7.6.2 關鍵路徑
7.7 綜合實例——故宮導游咨詢
7.8 習題
7.9 實驗
第8章 查找
8.1 查找的基本概念
8.2 順序查找
8.3 折半查找
8.4 分塊查找
8.5 二叉排序樹
8.5.1 二叉排序樹的定義
8.5.2 二叉排序樹的基本操作
8.6 B-樹和B+樹
8.6.1 B一樹的定義
8.6.2 B-樹的基本操作
8.6.3 B+樹的定義
8.6.4 B+樹的基本操作
8.7 哈希表
8.7.1 哈希表的定義
8.7.2 哈希函數(shù)的構造方法
8.7.3 處理沖突的方法
8.7.4 哈希表的基本操作
8.8 綜合實例——十大流行歌手排行榜
8.9 習題
8.10 實驗
第9章 排序
9.1 排序的基本概念
9.2 插入排序
9.2.1 直接插入排序
9.2.2 折半插入排序
9.2.3 希爾排序
9.3 交換排序
9.3.1 冒泡排序
9.3.2 快速排序
9.4 選擇排序
9.4.1 直接選擇排序
9.4.2 堆排序
9.5 歸并排序
9.6 基數(shù)排序
9.7 各種排序方法的比較
9.8 習題
9.9 實驗
附錄A 綜合測試
附錄B 2014年全國碩士研究生入學統(tǒng)一考試數(shù)據(jù)結構習題(節(jié)選)
附錄C 部分習題答案
參考文獻