數據結構[熊回香編著圖書]

《數據結構(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++的類)描述順序表類

參考文獻

相關詞條

熱門詞條

聯絡我們