本書(shū)希望能夠引起讀者對數據結構課程的興趣,提高對數據結構課程的重要性、必要性的認識,特別希望能夠提高數據結構課程的教學(xué)實(shí)效,讓讀者滿(mǎn)意并有收獲。在本書(shū)第1版成功的基礎上,作者進(jìn)行了修訂,作為第2版,本書(shū)內容更貼合《計算機學(xué)科專(zhuān)業(yè)碩士研究生入學(xué)考試基礎綜合考試大綱》,可讀性和實(shí)用性更強。內容包括:數組、鏈接表、棧和隊列、遞歸、樹(shù)與森林、圖、堆與優(yōu)先級隊列、集合與搜索結構、排序、索引結構與散列等。
書(shū)中采用面向對象的觀(guān)點(diǎn)討論數據結構技術(shù)、并以兼有面向過(guò)程和面向對象過(guò)程和面向對象雙重特色的C++語(yǔ)言作為算法的描述工具、強化基本知識和基本能力的雙基訓練。同時(shí)使得讀者進(jìn)一步掌握C++的編程思想、方法和技術(shù)內涵。數據結構(C++版)(第2版)》內容豐富,層次清晰,講解深入淺出,可作為計算機及相關(guān)專(zhuān)業(yè)本、專(zhuān)科數據結構課程的教材,也可供從事計算機軟件開(kāi)發(fā)和應用的工程技術(shù)人員閱讀、參考??梢詮闹付ǖ木W(wǎng)站下載本書(shū)所有的c++算法,提供于本書(shū)配套的PPT課件及習題答案。
數據結構是計算機專(zhuān)業(yè)教學(xué)計劃中的核心課程,也是計算機及相關(guān)專(zhuān)業(yè)考研和水平等級考試的必考科目。要從事和計算機科學(xué)與技術(shù)相關(guān)的工作,尤其是計算機應用領(lǐng)域的開(kāi)發(fā)和研制工作,必須具備堅實(shí)的數據結構基礎。本書(shū)介紹了學(xué)習數據結構所用到的預備知識,敘述了數據結構、算法以及抽象數據類(lèi)型的概念,介紹了線(xiàn)性表、棧、隊列和串、數組和廣義表、樹(shù)和二叉樹(shù)、圖等常用數據結構,討論了常用的查找、排序和索引技術(shù)。 本書(shū)內容豐富,層次清晰,講解深入淺出,可作為計算機及相關(guān)專(zhuān)業(yè)本專(zhuān)科數據結構課程的教材,也可供從事計算機軟件開(kāi)發(fā)和應用的工程技術(shù)人員閱讀、參考。
目錄
第1章緒論
1.1為什么要學(xué)習數據結構
1.2什么是數據結構
1.2.1數據的邏輯結構
1.2.2數據的存儲結構
1.2.3抽象數據類(lèi)型
1.3算法與算法分析
1.3.1算法
1.3.2算法的設計要求
1.3.3算法效率的量度
1.3.4算法的設計方式
習題
第2章線(xiàn)性表
2.1線(xiàn)性表的邏輯結構
2.1.1線(xiàn)性表的定義
2.1.2線(xiàn)性表的抽象數據類(lèi)型定義
2.2線(xiàn)性表的順序表示和實(shí)現
2.2.1順序存儲結構的定義
2.2.2基本操作在順序表中的實(shí)現
2.2.3順序存儲結構的特點(diǎn)
2.3線(xiàn)性表的鏈式表示和實(shí)現
2.3.1單鏈表
2.3.2雙向鏈表
2.3.3循環(huán)鏈表
2.3.4鏈式存儲結構的特點(diǎn)
2.4一元多項式求和
2.4.1一元多項式的表示
2.4.2一元多項式的求和
習題
第3章棧和隊列
3.1棧
3.1.1棧的抽象數據類(lèi)型定義
3.1.2棧的實(shí)現
3.2棧的應用舉例
3.3棧與遞歸
3.4隊列
3.4.1隊列的抽象數據類(lèi)型定義
3.4.2隊列的實(shí)現
3.4.3隊列的應用
習題
第4章串
4.1串類(lèi)型的定義
4.2串的存儲結構
4.2.1串的順序存儲結構
4.2.2堆分配存儲表示
4.2.3串的塊鏈存儲表示
4.3串的模式匹配算法
4.3.1求子串的定位函數
4.3.2模式匹配的一種改進(jìn)算法
4.4串的應用
習題
第5章數組和廣義表
5.1數組
5.1.1數組的定義
5.1.2數組的存儲
5.1.3特殊矩陣
5.1.4稀疏矩陣
5.2廣義表
5.2.1廣義表的定義
5.2.2廣義表的存儲結構
5.2.3廣義表的遞歸算法
5.2.4廣義表的應用
習題
第6章樹(shù)與二叉樹(shù)
6.1樹(shù)的定義與基本術(shù)語(yǔ)
6.2二叉樹(shù)
6.2.1二叉樹(shù)的定義
6.2.2二叉樹(shù)的性質(zhì)
6.2.3二叉樹(shù)的存儲結構
6.3二叉樹(shù)的遍歷
6.3.1遞歸遍歷二叉樹(shù)
6.3.2應用二叉樹(shù)遍歷的實(shí)例
6.4線(xiàn)索二叉樹(shù)
6.5樹(shù)與森林
6.5.1樹(shù)的存儲表示
6.5.2森林與二叉樹(shù)的轉換
6.5.3樹(shù)的遍歷
6.5.4森林的遍歷
6.6樹(shù)的應用
6.6.1堆
6.6.2哈夫曼樹(shù)與編碼
習題
第7章集合與搜索
7.1集合及其表示
7.1.1集合的定義
7.1.2集合的抽象數據類(lèi)型
7.1.3用位向量實(shí)現集合
7.2靜態(tài)搜索結構
7.2.1搜索的定義
7.2.2靜態(tài)搜索結構
7.2.3順序搜索
7.2.4基于有序順序表的折半搜索
7.2.5分塊搜索
7.3二叉搜索樹(shù)
7.3.1二叉搜索樹(shù)的定義
7.3.2二叉搜索樹(shù)的搜索
7.3.3二叉搜索樹(shù)的插入
7.3.4二叉搜索樹(shù)的建立
7.3.5二叉搜索樹(shù)的刪除
7.4AVL樹(shù)
7.4.1AVL樹(shù)的定義
7.4.2最小不平衡二叉樹(shù)
7.4.3不平衡二叉樹(shù)的調整方法
7.4.4建立平衡二叉樹(shù)舉例
7.5應用舉例計算機登錄驗證
習題
第8章圖
8.1圖的定義
8.1.1圖的定義與相關(guān)術(shù)語(yǔ)
8.1.2圖的抽象數據類(lèi)型
8.2圖的存儲結構
8.2.1數組表示法
8.2.2鄰接表表示法
8.2.3鄰接多重表表示法
8.2.4十字鏈表法
8.3圖的遍歷
8.3.1深度優(yōu)先遍歷
8.3.2廣度優(yōu)先遍歷
8.4圖的最小生成樹(shù)
8.4.1Prim算法
8.4.2Kruskal算法
8.5最短路徑
8.5.1單源最短路徑
8.5.2每對頂點(diǎn)的最短路徑
8.6拓撲排序
8.7關(guān)鍵路徑
8.8應用實(shí)例
習題
第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.5.1歸并排序概述
9.5.2遞歸的歸并排序算法
9.6基數排序
9.6.1多關(guān)鍵碼排序
9.6.2鏈式基數排序
9.7各種排序方法的比較討論
9.8外部排序的方法
習題
第10章索引結構和散列
10.1靜態(tài)索引結構
10.1.1線(xiàn)性索引
10.1.2倒排表
10.1.3m路靜態(tài)索引樹(shù)
10.2動(dòng)態(tài)索引結構
10.2.1動(dòng)態(tài)的m路靜態(tài)索引樹(shù)
10.2.2B_樹(shù)
10.2.3B_樹(shù)的插入
10.2.4B_樹(shù)的刪除
10.2.5B+樹(shù)
10.3散列
10.3.1散列函數
10.3.2開(kāi)散列方法
10.3.3閉散列方法
10.3.4散列表的實(shí)現
10.3.5散列表分析
習題
參考文獻