本書介紹了數(shù)據(jù)結(jié)構(gòu)的基本概念和基本算法。全書共分為10章,包括概論、線性表及其順序存儲(chǔ)、線性表的鏈?zhǔn)酱鎯?chǔ)、字符串、數(shù)組和特殊矩陣、遞歸、樹型結(jié)構(gòu)、二叉樹、圖、檢索、內(nèi)排序等內(nèi)容,附錄給出了較為詳細(xì)的基礎(chǔ)實(shí)驗(yàn)和幾類綜合課程設(shè)計(jì)題。
本書內(nèi)容豐富,邏輯性強(qiáng),文字清晰流暢,既注重理論知識(shí),又強(qiáng)調(diào)工程實(shí)用。書中既體現(xiàn)了抽象數(shù)據(jù)類型的概念,又對(duì)每個(gè)算法的具體實(shí)現(xiàn)給出了完整的C語言源代碼描述。
與本書配套的電子教案、書中所有算法的源代碼和習(xí)題參考答案均可從人民郵電出版社教學(xué)服務(wù)與資源網(wǎng)(www.ptpedu.com.cn)上免費(fèi)下載。
本書可作為高等院校計(jì)算機(jī)專業(yè)及相關(guān)專業(yè)本科生“數(shù)據(jù)結(jié)構(gòu)”課程的教材,也可作為從事計(jì)算機(jī)工程與應(yīng)用的廣大讀者的參考書。
1.“十二五”普通高等教育本科國家級(jí)規(guī)劃教材 2.江西省精品課程、省精品資源共享課程配套教材 3.C語言實(shí)現(xiàn),提供全部實(shí)例代碼及實(shí)驗(yàn)代碼。
第1章 概論
1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念與術(shù)語
1.1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念
1.1.2 數(shù)據(jù)的邏輯結(jié)構(gòu)
1.1.3 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
1.1.4 數(shù)據(jù)的運(yùn)算集合
1.2 數(shù)據(jù)類型和抽象數(shù)據(jù)類型
1.2.1 數(shù)據(jù)類型
1.2.2 抽象數(shù)據(jù)類型
1.2.3 抽象數(shù)據(jù)類型的描述和實(shí)現(xiàn)
1.3 算法和算法分析
1.3.1 算法的基本概念和基本特征
1.3.2 算法的時(shí)間復(fù)雜度和空間復(fù)雜度
習(xí)題
第1章 概論
1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念與術(shù)語
1.1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念
1.1.2 數(shù)據(jù)的邏輯結(jié)構(gòu)
1.1.3 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
1.1.4 數(shù)據(jù)的運(yùn)算集合
1.2 數(shù)據(jù)類型和抽象數(shù)據(jù)類型
1.2.1 數(shù)據(jù)類型
1.2.2 抽象數(shù)據(jù)類型
1.2.3 抽象數(shù)據(jù)類型的描述和實(shí)現(xiàn)
1.3 算法和算法分析
1.3.1 算法的基本概念和基本特征
1.3.2 算法的時(shí)間復(fù)雜度和空間復(fù)雜度
習(xí)題
第2章 線性表及其順序存儲(chǔ)
2.1 線性表
2.2 順序表
2.2.1 順序表的基本概念及描述
2.2.2 順序表的實(shí)現(xiàn)
2.3 棧
2.3.1 棧的基本概念及描述
2.3.2 順序棧及其實(shí)現(xiàn)
2.3.3 棧的應(yīng)用之一——括號(hào)匹配
2.3.4 棧的應(yīng)用之二——算術(shù)表達(dá)式求值
2.4 隊(duì)列
2.4.1 隊(duì)列的基本概念及描述
2.4.2 順序隊(duì)列及其實(shí)現(xiàn)
2.4.3 順序循環(huán)隊(duì)列及其實(shí)現(xiàn)
習(xí)題
第3章 線性表的鏈?zhǔn)酱鎯?chǔ)
3.1 鏈?zhǔn)酱鎯?chǔ)
3.2 單鏈表
3.2.1 單鏈表的基本概念及描述
3.2.2 單鏈表的實(shí)現(xiàn)
3.3 帶頭結(jié)點(diǎn)的單鏈表
3.3.1 帶頭結(jié)點(diǎn)的單鏈表的基本概念及描述
3.3.2 帶頭結(jié)點(diǎn)的單鏈表的實(shí)現(xiàn)
3.4 循環(huán)單鏈表
3.4.1 循環(huán)單鏈表的基本概念及描述
3.4.2 循環(huán)單鏈表的實(shí)現(xiàn)
3.5 雙鏈表
3.5.1 雙鏈表的基本概念及描述
3.5.2 雙鏈表的實(shí)現(xiàn)
3.6 鏈?zhǔn)綏!?br />3.6.1 鏈?zhǔn)綏5幕靖拍罴懊枋觥?br />3.6.2 鏈?zhǔn)綏5膶?shí)現(xiàn)
3.7 鏈?zhǔn)疥?duì)列
3.7.1 鏈?zhǔn)疥?duì)列的基本概念及描述
3.7.2 鏈?zhǔn)疥?duì)列的實(shí)現(xiàn)
習(xí)題
第4章 字符串、數(shù)組和特殊矩陣
4.1 字符串
4.1.1 字符串的基本概念
4.1.2 字符串類的定義
4.1.3 字符串的存儲(chǔ)及其實(shí)現(xiàn)
4.2 字符串的模式匹配
4.2.1 樸素的模式匹配算法
4.2.2 快速模式匹配算法
4.3 數(shù)組
4.3.1 數(shù)組和數(shù)組元素
4.3.2 數(shù)組類的定義
4.3.3 數(shù)組的順序存儲(chǔ)及實(shí)現(xiàn)
4.4 特殊矩陣
4.4.1 對(duì)稱矩陣的壓縮存儲(chǔ)
4.4.2 三角矩陣的壓縮存儲(chǔ)
4.4.3 帶狀矩陣的壓縮存儲(chǔ)
4.5 稀疏矩陣
4.5.1 稀疏矩陣類的定義
4.5.2 稀疏矩陣的順序存儲(chǔ)及其實(shí)現(xiàn)
4.5.3 稀疏矩陣的鏈?zhǔn)酱鎯?chǔ)及實(shí)現(xiàn)
習(xí)題
第5章 遞歸
5.1 遞歸的基本概念與遞歸程序設(shè)計(jì)
5.2 遞歸程序執(zhí)行過程的分析
5.3 遞歸程序到非遞歸程序的轉(zhuǎn)換
5.3.1 簡(jiǎn)單遞歸程序到非遞歸程序的轉(zhuǎn)換
5.3.2 復(fù)雜遞歸程序到非遞歸程序的轉(zhuǎn)換
5.4 遞歸程序設(shè)計(jì)的應(yīng)用實(shí)例
習(xí)題
第6章 樹型結(jié)構(gòu)
6.1 樹的基本概念
6.2 樹類的定義
6.3 樹的存儲(chǔ)結(jié)構(gòu)
6.3.1 雙親表示法
6.3.2 孩子表示法
6.3.3 孩子兄弟表示法
6.4 樹的遍歷
6.5 樹的線性表示
6.5.1 樹的括號(hào)表示
6.5.2 樹的層號(hào)表示
習(xí)題
第7章 二叉樹
7.1 二叉樹的基本概念
7.2 二叉樹的基本運(yùn)算
7.3 二叉樹的存儲(chǔ)結(jié)構(gòu)
7.3.1 順序存儲(chǔ)結(jié)構(gòu)
7.3.2 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
7.4 二叉樹的遍歷
7.4.1 二叉樹遍歷的定義
7.4.2 二叉樹遍歷的遞歸實(shí)現(xiàn)
7.4.3 二叉樹遍歷的非遞歸實(shí)現(xiàn)
7.5 二叉樹其他運(yùn)算的實(shí)現(xiàn)
7.6 穿線二叉樹
7.6.1 穿線二叉樹的定義
7.6.2 中序穿線二叉樹的基本運(yùn)算
7.6.3 中序穿線二叉樹的存儲(chǔ)結(jié)構(gòu)及其實(shí)現(xiàn)
7.7 樹、森林和二叉樹的轉(zhuǎn)換
7.7.1 樹、森林到二叉樹的轉(zhuǎn)換
7.7.2 二叉樹到樹、森林的轉(zhuǎn)換
習(xí)題
第8章 圖
8.1 圖的基本概念
8.2 圖的基本運(yùn)算
8.3 圖的基本存儲(chǔ)結(jié)構(gòu)
8.3.1 鄰接矩陣及其實(shí)現(xiàn)
8.3.2 鄰接表及其實(shí)現(xiàn)
8.3.3 鄰接多重表
8.4 圖的遍歷
8.4.1 深度優(yōu)先遍歷
8.4.2 廣度優(yōu)先遍歷
8.5 生成樹與最小生成樹
8.5.1 最小生成樹的定義
8.5.2 最小生成樹的普里姆(Prim)算法
8.5.3 最小生成樹的克魯斯卡爾(Kruskal)算法
8.6 最短路徑
8.6.1 單源最短路徑
8.6.2 所有頂點(diǎn)對(duì)的最短路徑
8.7 拓?fù)渑判颉?br />8.8 關(guān)鍵路徑
習(xí)題
第9章 檢索
9.1 檢索的基本概念
9.2 線性表的檢索
9.2.1 順序檢索
9.2.2 二分法檢索
9.2.3 分塊檢索
9.3 二叉排序樹
9.4 豐滿樹和平衡樹
9.4.1 豐滿樹
9.4.2 平衡二叉排序樹
9.5 最佳二叉排序樹和Huffman樹
9.5.1 擴(kuò)充二叉樹
9.5.2 最佳二叉排序樹
9.5.3 Huffman樹
9.6 B樹
9.6.1 B-樹的定義
9.6.2 B-樹的基本操作
9.6.3 B+樹
9.7 散列表檢索
9.7.1 散列存儲(chǔ)
9.7.2 散列函數(shù)的構(gòu)造
9.7.3 沖突處理
習(xí)題
第10章 內(nèi)排序
10.1 排序的基本概念
10.2 插入排序
10.2.1 直接插入排序
10.2.2 二分法插入排序
10.2.3 表插入排序
10.2.4 Shell插入排序
10.3 選擇排序
10.3.1 直接選擇排序
10.3.2 樹型選擇排序
10.3.3 堆排序
10.4 交換排序
10.4.1 冒泡排序
10.4.2 快速排序
10.5 歸并排序
10.6 基數(shù)排序
10.6.1 多排序碼的排序
10.6.2 靜態(tài)鏈?zhǔn)交鶖?shù)排序
習(xí)題
附錄1 基礎(chǔ)實(shí)驗(yàn)
實(shí)驗(yàn)1 線性表的順序?qū)崿F(xiàn)
實(shí)驗(yàn)2 不帶頭結(jié)點(diǎn)的單鏈表
實(shí)驗(yàn)3 帶頭結(jié)點(diǎn)的單鏈表
實(shí)驗(yàn)4 棧與字符串
實(shí)驗(yàn)5 遞歸
實(shí)驗(yàn)6 樹
實(shí)驗(yàn)7 二叉樹
實(shí)驗(yàn)8 圖
實(shí)驗(yàn)9 檢索
實(shí)驗(yàn)10 排序
附錄2 綜合實(shí)驗(yàn)
參考文獻(xiàn)