《數(shù)據(jù)結(jié)構(gòu)》是為“數(shù)據(jù)結(jié)構(gòu)”課程編寫的教材,也可作為學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)及其算法的C程序設(shè)計(jì)的參考教材。《數(shù)據(jù)結(jié)構(gòu)》的前部分主要討論了線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖狀(網(wǎng)狀)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)定義、算法及其應(yīng)用;后部分主要討論了實(shí)現(xiàn)查找和排序操作的基本數(shù)據(jù)結(jié)構(gòu)和算法!稊(shù)據(jù)結(jié)構(gòu)》采用C語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言。《數(shù)據(jù)結(jié)構(gòu)》主要章節(jié)還包含了實(shí)驗(yàn)、習(xí)題、課程設(shè)計(jì)等內(nèi)容,可作為實(shí)驗(yàn)、課程設(shè)計(jì)的參考書,也可作為考試復(fù)習(xí)參考書!稊(shù)據(jù)結(jié)構(gòu)》概念表述嚴(yán)謹(jǐn),邏輯推理嚴(yán)密,語言精練,用詞達(dá)意,既便于教學(xué),又便于自學(xué)。
《數(shù)據(jù)結(jié)構(gòu)》可作為計(jì)算機(jī)類專業(yè)或信息類相關(guān)專業(yè)的本科或?qū)?平滩,或作為“?shù)據(jù)結(jié)構(gòu)”課程研究生入學(xué)考試的參考書,也可供從事計(jì)算機(jī)工程與應(yīng)用工作的科技工作者參考。
第1章 緒論
1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念
1.2 算法和算法分析
1.2.1 算法定義
1.2.2 算法特性
1.2.3 算法設(shè)計(jì)要求
1.2.4 算法分析
1.3 習(xí)題
第2章 線性表
2.1 線性表的邏輯結(jié)構(gòu)及其運(yùn)算
2.2 線性表的順序存儲(chǔ)結(jié)構(gòu)和實(shí)現(xiàn)
2.2.1 線性表的順序存儲(chǔ)結(jié)構(gòu)
2.2.2 順序表基本操作的實(shí)現(xiàn)
2.3 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)和實(shí)現(xiàn)
2.3.1 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
2.3.2 單鏈表基本操作的實(shí)現(xiàn)
2.3.3 靜態(tài)鏈表
2.4 循環(huán)鏈表和雙向鏈表
2.4.1 循環(huán)鏈表
2.4.2 雙向鏈表
2.5 實(shí)驗(yàn):線性表
2.5.1 實(shí)驗(yàn)2.1:順序表
2.5.2 實(shí)驗(yàn)2.2:?jiǎn)捂湵?br>2.5.3 實(shí)驗(yàn)2.3:靜態(tài)鏈表
2.6 習(xí)題
第3章 棧和隊(duì)列
3.1 棧
3.2 棧的順序存儲(chǔ)結(jié)構(gòu)和實(shí)現(xiàn)
3.2.1 順序棧的定義和實(shí)現(xiàn)
3.2.2 鏈棧的定義和實(shí)現(xiàn)
3.3 棧的應(yīng)用
3.4 隊(duì)列
3.5 隊(duì)列的存儲(chǔ)結(jié)構(gòu)和實(shí)現(xiàn)
3.5.1 順序循環(huán)隊(duì)列的定義和實(shí)現(xiàn)
3.5.2 鏈隊(duì)列的定義和實(shí)現(xiàn)
3.6 實(shí)驗(yàn):棧和隊(duì)列
3.6.1 實(shí)驗(yàn)3.1:順序棧
3.6.2 實(shí)驗(yàn)3.2:鏈棧
3.6.3 實(shí)驗(yàn)3.3:循環(huán)隊(duì)列
3.6.4 實(shí)驗(yàn)3.4:鏈隊(duì)列
3.7 習(xí)題
第4章 串和數(shù)組及廣義表
4.1 串的基本概念
4.2 串的存儲(chǔ)表示和實(shí)現(xiàn)
4.2.1 串的定長(zhǎng)順序存儲(chǔ)和實(shí)現(xiàn)
4.2.2 串的堆分配存儲(chǔ)和實(shí)現(xiàn)
4.2.3 串的塊鏈?zhǔn)酱鎯?chǔ)和實(shí)現(xiàn)
4.3 串的模式匹配算法
4.4 數(shù)組
4.4.1 數(shù)組的定義
4.4.2 數(shù)組的順序表示和實(shí)現(xiàn)
4.5 矩陣的壓縮存儲(chǔ)
4.5.1 特殊矩陣的壓縮存儲(chǔ)
4.5.2 稀疏矩陣的壓縮存儲(chǔ)
4.6 廣義表
4.7 實(shí)驗(yàn):串和數(shù)組及廣義表
4.7.1 實(shí)驗(yàn)4.1:定長(zhǎng)順序串的基本操作
4.7.2 實(shí)驗(yàn)4.2:稀疏矩陣的基本運(yùn)算
4.8 習(xí)題
第5章 樹和二叉樹
5.1 樹的定義與存儲(chǔ)結(jié)構(gòu)
5.1.1 樹的定義與基本術(shù)語
5.1.2 樹的存儲(chǔ)結(jié)構(gòu)
5.2 二叉樹
5.2.1 二叉樹的定義與性質(zhì)
5.2.2 二叉樹的存儲(chǔ)結(jié)構(gòu)
5.3 二叉樹遍歷和線索
5.3.1 二叉樹遍歷的遞歸算法
5.3.2 二叉樹遍歷的非遞歸算法
5.3.3 線索二叉樹
5.4 樹、森林和二叉樹的轉(zhuǎn)換與遍歷
5.4.1 樹轉(zhuǎn)換成二叉樹
5.4.2 二叉樹轉(zhuǎn)換成森林
5.4.3 森林轉(zhuǎn)換成二叉樹
5.4.4 樹和森林的遍歷
5.5 赫夫曼樹
5.5.1 赫夫曼樹的定義與構(gòu)造
5.5.2 赫夫曼編碼及其算法
5.6 實(shí)驗(yàn):樹和二叉樹
5.6.1 實(shí)驗(yàn)5.1:二叉樹遍歷的遞歸算法
5.6.2 實(shí)驗(yàn)5.2:二叉樹遍歷的非遞歸算法
5.6.3 實(shí)驗(yàn)5.3:赫夫曼編碼
5.7 習(xí)題
第6章 圖
6.1 圖的基本概念
6.2 圖的存儲(chǔ)結(jié)構(gòu)
6.2.1 鄰接矩陣
6.2.2 鄰接表
6.2.3 十字鏈表
6.2.4 鄰接多重表
6.2.5 邊表
6.3 圖的遍歷
6.3.1 深度優(yōu)先搜索遍歷
6.3.2 廣度優(yōu)先搜索遍歷
6.4 最小生成樹
6.4.1 普里姆算法
6.4.2 克魯斯卡爾算法
6.5 有向無環(huán)圖及其應(yīng)用
6.5.1 拓?fù)渑判?br>6.5.2 關(guān)鍵路徑
6.6 最短路徑
6.6.1 單源頂點(diǎn)出發(fā)的最短路徑
6.6.2 每一對(duì)頂點(diǎn)間的最短路徑
6.7 實(shí)驗(yàn):圖
6.7.1 實(shí)驗(yàn)6.1:圖的深度優(yōu)先搜索遍歷
6.7.2 實(shí)驗(yàn)6.2:圖的廣度優(yōu)先搜索遍歷
6.7.3 實(shí)驗(yàn)6.3:最小生成樹的普里姆算法
6.7.4 實(shí)驗(yàn)6.4:最小生成樹的克魯斯卡爾算法
6.7.5 實(shí)驗(yàn)6.5:拓?fù)渑判?br>6.7.6 實(shí)驗(yàn)6.6:關(guān)鍵路徑
6.7.7 實(shí)驗(yàn)6.7:?jiǎn)卧袋c(diǎn)出發(fā)最短路徑的迪杰斯特拉算法
6.7.8 實(shí)驗(yàn)6.8:每一對(duì)頂點(diǎn)間最短路徑的弗洛伊德算法
6.8 習(xí)題
第7章 查找
7.1 查找的概念
7.2 靜態(tài)查找
7.2.1 順序查找
7.2.2 折半查找
7.2.3 分塊查找
7.3 動(dòng)態(tài)查找
7.3.1 二叉排序樹的定義
7.3.2 二叉排序樹的查找
7.3.3 二叉排序樹的插入
7.3.4 二叉排序樹的建樹
7.3.5 二叉排序樹的刪除
7.4 平衡二叉樹
7.4.1 平衡二叉樹的定義
7.4.2 平衡二叉樹的旋轉(zhuǎn)
7.4.3 平衡二叉排序樹的建樹與插入
7.5 索引查找
7.5.1 B-樹的定義
7.5.2 B-樹的查找
7.5.3 B-樹的插入
7.5.4 B-樹的刪除
7.5.5 B+樹
7.6 哈希查找
7.6.1 哈希函數(shù)
7.6.2 沖突處理
7.6.3 哈希查找
7.6.4 哈希表的插入與刪除
7.7 實(shí)驗(yàn):查找
7.7.1 實(shí)驗(yàn)7.1:順序查找與折半查找
7.7.2 實(shí)驗(yàn)7.2:分塊查找
7.7.3 實(shí)驗(yàn)7.3:二叉排序樹的操作
7.7.4 實(shí)驗(yàn)7.4:平衡二叉排序樹的建樹
7.7.5 實(shí)驗(yàn)7.5:B一樹的建樹與查找
7.7.6 實(shí)驗(yàn)7.6:基于開放地址法的哈希表查找算法
7.7.7 實(shí)驗(yàn)7.7:基于鏈地址法的哈希表查找算法
7.8 習(xí)題
第8章 排序
8.1 排序的基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 折半插入排序
8.2.3 表插入排序
8.2.4 希爾排序
8.3 交換排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 選擇排序
8.4.1 簡(jiǎn)單選擇排序
8.4.2 錦標(biāo)賽樹形選擇排序
8.4.3 堆排序
8.5 歸并排序
8.6 基數(shù)排序
8.6.1 多關(guān)鍵字排序
8.6.2 鏈?zhǔn)交鶖?shù)排序
8.7 內(nèi)部排序方法的比較
8.8 實(shí)驗(yàn):排序
8.8.1 實(shí)驗(yàn)8.1:插入排序
8.8.2 實(shí)驗(yàn)8.2:交換排序
8.8.3 實(shí)驗(yàn)8.3:選擇排序
8.8.4 實(shí)驗(yàn)8.4:歸并排序
8.8.5 實(shí)驗(yàn)8.5:基數(shù)排序
8.9 習(xí)題
習(xí)題參考答案