數據結構

熊回香編著圖書

《數據結構(C/C++版)》主要內容分為兩大部分,前半部分從抽象數據類型的角度討論三大數據結構,即線性結構、層次結構和網狀結構的邏輯特性、存儲表示、基本操作及其應用;後半部分主要討論查找和排序的各種實現方法和綜合分析比較。

圖書信息


ISBN: 9787512100824
開本: 16開
定價: 39.00元

內容簡介


《數據結構(C/C++版)》共分為10章和1個附錄,第1章為緒論,介紹數據結構的基本概念、演演算法分析的方法及與演演算法描述有關的C++知識;第2章為線性表,主要介紹線性表的兩種存儲結構——順序表和鏈表及其基本操作的演演算法實現;第3章為堆棧和隊列,介紹這兩種特殊線性結構的概念、操作與應用;第4章為串,介紹串的概念、串的基本操作與串的模式匹配演演算法;第5章為數組和廣義表,介紹數組、稀疏矩陣和廣義表的概念與相關操作的演演算法實現;第6章為樹形結構,介紹樹和二叉樹的概念與各種操作的演演算法實現,其中特別突出二叉樹的各種遞歸演演算法方法;第7章為圖,介紹圖的概念、圖的各種操作演演算法實現以及圖的典型應用;第8章為查找,介紹各種查找演演算法的演演算法思想及其實現過程;第9章為排序,介紹各種內排序和外排序演演算法的實現過程;第10章為文件,介紹各類文件的組織結構及其操作;附錄A中介紹了一個用C++描述的順序表類。
《數據結構(C/C++版)》既適於作計算機及其相關專業的教材,又特別適合作信息管理與信息系統專業的教材;同時《數據結構(C/C++版)》的編寫既考慮到了龐大的C語言讀者群,又充分利用了C++對描述數據結構的獨特優勢(如數據傳遞、抽象性等),使得《數據結構(C/C++版)》的讀者群更加廣泛。

圖書目錄


第1章 緒論
1.1 數據結構的產生和發展
1.1.1 數據結構的產生
1.1.2 數據結構的發展
1.2 數據結構的研究對象
1.3 基本概念和術語
1.4 數據結構與演演算法的關係
1.5 演演算法與演演算法分析
1.5.1 演演算法
1.5.2 演演算法的描述方法
1.5.3 演演算法設計目標
1.5.4 演演算法效率的度量
1.6 與演演算法描述有關的C++知識
1.6.1 C++的輸入和輸出
1.6.2 函數
1.6.3 類和對象
1.6.4 變數的引用類型
1.6.5 運算符重載
1.6.6 數據類型相關說明
1.6.7 兩個相關的頭文件
本章小結
習題一
第2章 線性表
2.1 線性表的基本概念
2.1.1 線性表的定義
2.1.2 線性表的抽象數據類型
2.2 線性表的順序存儲和基本操作
2.2.1 線性表的順序存儲——順序表
2.2.2 順序表的基本操作
2.2.3 順序表基本操作的演演算法分析
2.3 線性表的鏈式存儲和基本操作
2.3.1 鏈式存儲的概念
2.3.2 單鏈表
2.3.3 單鏈表的基本操作
2.3.4 單鏈表基本操作的演演算法分析
2.3.5 雙向鏈表
2.3.6 循環鏈表
*2.4 順序表和鏈表的綜合比較
*2.5 靜態鏈表
*2.6 線性表演演算法設計舉例
2.6.1 順序表演演算法設計舉例
2.6.2 單鏈表演演算法設計舉例
本章小結
習題二
第3章 堆棧與隊列
3.1 堆棧
3.1.1 堆棧的基本概念
3.1.2 堆棧的順序存儲和基本操作
3.1.3 堆棧的鏈式存儲和基本操作
3.2 堆棧的應用舉例
3.3 隊列
3.3.1 隊列的基本概念
3.3.2 隊列的順序存儲和基本操作
3.3.3 隊列的鏈式存儲和基本操作
3.3.4 其他隊列
*3.4 隊列的應用舉例
本章小結
習題三
第4章 串
4.1 串的基本概念
4.1.1 串的定義
4.1.2 串的抽象數據類型
4.2 串的順序存儲和基本操作
4.2.1 串的順序存儲——順序串
4.2.2 順序串的基本操作
4.3 串的鏈式存儲和基本操作
4.3.1 串的鏈式存儲——鏈式串
4.3.2 鏈式串的基本操作
4.4 串的模式匹配演演算法
4.4.1 Brute-Force演演算法
*4.4.2 KMP演演算法
4.5 串的應用舉例
本章小結
習題四
第5章 數組和廣義表
5.1 數組的基本概念
5.1.1 數組的定義
5.1.2 數組的抽象數據類型
5.2 數組的存儲結構
5.2.1 一維數組的存儲
5.2.2 多維數組的存儲
5.3 數組的順序存儲表示和基本操作
5.3.1 數組的順序存儲表示
5.3.2 數組的基本操作
*5.3.3 數組的應用舉例
5.4 矩陣的壓縮存儲
5.4.1 特殊矩陣的壓縮存儲
5.4.2 稀疏矩陣的壓縮存儲
*5.5 廣義表
5.5.1 廣義表的基本概念
5.5.2 廣義表的存儲結構
5.5.3 廣義表的基本操作
本章小結
習題五
第6章 樹和二叉樹
6.1 樹
6.1.1 樹的基本概念
6.1.2 樹的存儲結構
*6.1.3 樹的基本操作
6.2 二叉樹
6.2.1 二叉樹的基本概念
6.2.2 二叉樹的存儲結構
6.2.3 二叉樹的遍歷
6.2.4 二叉樹的其他操作
*6.3 線索二叉樹
6.3.1 線索二叉樹的基本概念
6.3.2 線索二叉樹的存儲結構
6.3.3 二叉樹的線索化
6.3.4 線索二叉樹的基本操作
6.4 哈夫曼樹
6.4.1 哈夫曼樹的基本概念
6.4.2 構造哈夫曼樹
6.4.3 哈夫曼編碼
6.5 樹、森林與二叉樹的轉換
6.5.1 樹與二叉樹的轉換
6.5.2 森林與二叉樹的轉換
*6.6 樹的應用舉例——PATRICIA tree
本章小結
習題六
第7章 圖
7.1 圖的基本概念
7.1.1 圖的定義
7.1.2 圖的基本術語
7.1.3 圖的抽象數據類型
7.2 圖的存儲結構
7.2.1 鄰接矩陣
7.2.2 鄰接表
7.2.3 十字鄰接表
7.2.4 鄰接多重表
7.2.5 邊集數組
7.3 圖的實現
7.3.1 鄰接矩陣存儲結構下圖基本操作的實現
7.3.2 鄰接表存儲結構下圖基本操作的實現
7.4 圖的遍歷
7.4.1 深度優先遍歷
7.4.2 廣度優先遍歷
7.5 最小生成樹
7.5.1 最小生成樹的概念
7.5.2 普里姆演演算法
7.5.3 克魯斯卡爾演演算法
7.6 最短路徑
7.6.1 最短路徑的概念
7.6.2 從一頂點到其餘各頂點的最短路徑
7.6.3 每對頂點之間的最短路徑
7.7 拓撲排序
7.7.1 拓撲排序的概念
7.7.2 拓撲排序的演演算法
7.8 關鍵路徑
7.8.1 關鍵路徑的概念
7.8.2 頂點事件的發生時間
7.8.3 求關鍵路徑的演演算法
7.8.4 求關鍵路徑的演演算法描述
本章小結
習題七
第8章 查找
8.1 查找的基本概念
8.2 靜態查找
8.2.1 順序查找
8.2.2 二分查找
8.2.3 索引查找
8.3 動態查找
8.3.1 二叉排序樹
*8.3.2 平衡二叉樹
8.3.3 B_樹和B+樹
8.4哈 希表查找
8.4.1 哈希表查找的基本概念
8.4.2 哈希函數構造方法
8.4.3 哈希衝突解決方法
8.4.4 哈希表的操作
8.4.5 哈希表查找的性能分析
本章小結
習題八
第9章 排序
9.1 排序的基本概念
9.2 插入排序
9.2.1 直接插入排序
*9.2.2 希爾排序
9.3 選擇排序
9.3.1 直接選擇排序
9.3.2 堆排序
9.4 交換排序
9.4.1 冒泡排序
9.4.2 快速排序
9.5 歸併排序
9.6 基數排序
*9.7 各種內排序方法的性能比較
*9.8 外排序
9.8.1 外存信息的存取
9.8.2 外排序的過程
9.8.3 多路平衡歸併
9.8.4 初始歸併段的生成
9.8.5 最佳歸併樹
本章小結
習題九
第10章 文件
10.1 文件概述
10.1.1 文件的存儲介質
10.1.2 文件的基本概念
10.2 順序文件
10.3 索引文件
10.4 ISAM文件
10.5 VSAM文件
10.6 哈希文件
10.7 多關鍵字文件
10.7.1 多重表文件
10.7.2 倒排文件
*10.8 文件的應用舉例
本章小結
習題十
附錄A用面向對象的方法(C++的類)描述順序表類
參考文獻