作者簡介
嚴蔚敏,清華大學計算機系教授,長期從事數據結構教學和教材建設,和吳偉民合作編著的《數據結構》曾獲“第二屆普通高等學校優秀教材全國特等獎”和“1996年度國家科學技術進步獎三等獎”。內容簡介
《數據結構》(C語言版)是為“數據結構”課程編寫的教材,也可作為學習數據結構及其算法的C程式設計的參數教材。本書的前半部分從抽象數據類型的角度討論各種基本類型的數據結構及其套用;後半部分主要討論查找和排序的各種實現方法及其綜合分析比較。其內容和章節編排1992年4月出版的《數據結構》(第二版)基本一致,但在本書中更突出了抽象數據類型的概念。全書採用類C語言作為數據結構和算法的描述語言。
本書概念表述嚴謹,邏輯推理嚴密,語言精煉,用詞達意,並有配套出版的《數據結構題集》(C語言版),便於教學,又便於自學。
本書後附有光碟。光碟內容可在DOS環境下運行的以類C語言描述的“數據結構算法動態模擬輔助教學軟體,以及在Windows環境下運行的以類PASCAL或類C兩種語言描述的“數據結構算法動態模擬輔助教學軟體”。
本書可作為計算機類專業或信息類相關專業的本科或專科教材,也可供從事計算機工程與套用工作的科技工作者參考。
目錄
第1章 緒論1.1 什麼是數據結構
1.2 基本概念和術語
1.3 抽象數據類型的表現與實現
1.4 算法和算法分析
第2章 線性表
2.1 線性表的類型定義
2.2 線性表的順序表示和實現
2.3 線性表的鏈式表示和實現
2.4 一元多項式的表示及相加
第3章 棧和佇列
3.1 棧
3.2 棧的應有和舉例
3.3 棧與遞歸的實現
3.4 佇列
3.5 離散事件模擬
第4章 串
4.1 串類型的定義
4.2 串的表示和實現
4.3 串的模式匹配算法
4.4 串操作套用舉例
第5章 數組和廣義表
5.1 數組的定義
5.2 數組的順序表現和實現
5.3 矩陣的壓縮存儲
5.4 廣義表的定義
5.5 廣義表的儲存結構
5.6 m元多項式的表示
5.7 廣義表的遞歸算法第6章 樹和二叉樹
6.1 樹的定義和基本術語
6.2 二叉樹
6.2.1 二叉樹的定義
6.2.2 二叉樹的性質
6.2.3 二叉樹的存儲結構
6.3 遍歷二叉樹和線索二叉樹
6.3.1 遍歷二叉樹
6.3.2 線索二叉樹
6.4 樹和森林
6.4.1 樹的存儲結構
6.4.2 森林與二叉樹的轉換
6.4.3 樹和森林的遍歷
6.5 樹與等價問題
6.6 赫夫曼樹及其套用
6.6.1 最優二叉樹(赫夫曼樹)
6.6.2 赫夫曼編碼
6.7 回溯法與樹的遍歷
6.8 樹的計數
第7章 圖
7.1 圖的定義和術語
7.2 圖的存儲結構
7.2.1 數組表示法
7.2.2 鄰接表
7.2.3 十字鍊表
7.2.4 鄰接多重表
7.3 圖的遍歷
7.3.1 深度優先搜尋
7.3.2 廣度優先搜尋
7.4 圖的連通性問題
7.4.1 無向圖的連通分量和生成樹
7.4.2 有向圖的強連通分量
7.4.3 最小生成樹
7.4.4 關節點和重連通分量
7.5 有向無環圖及其套用
7.5.1 拓撲排序
7.5.2 關鍵路徑
7.6 最短路徑
7.6.1 從某個源點到其餘各頂點的最短路徑
7.6.2 每一對頂點之間的最短路徑
第8章 動態存儲管理
8.1 概述
8.2 可利用空間表及分配方法
8.3 邊界標識法
8.3.1 可利用空間表的結構
8.3.2 分配算法
8.3.3 回收算法
8.4 夥伴系統
8.4.1 可利用空間表的結構
8.4.2 分配算法
8.4.3 回收算法
8.5 無用單元收集
8.6 存儲緊縮
第9章 查找
9.1 靜態查找表
9.1.1 順序表的查找
9.1.2 有序表的查找
9.1.3 靜態樹表的查找
9.1.4 索引順序表的查找
9.2 動態查找表
9.2.1 二叉排序樹和平衡二叉樹
9.2.2 B樹和B+樹
9.2.3 鍵樹
9.3 哈希表
9.3.1 什麼是哈希表
9.3.2 哈希函式的構造方法
9.3.3 處理衝突的方法
9.3.4 哈希表的查找及其分析
第10章 內部排序
10.1 概述
10.2 插入排序
10.2.1 直接插入排序
10.2.2 其他插入排序
10.2.3 希爾排序
10.3 快速排序
10.4 選擇排序
10.4.1 簡單選擇排序
10.4.2 樹形選擇排序
10.4.3 堆排序
10.5 歸併排序
10.6 基數排序
10.6.1 多關鍵字的排序
10.6.2 鏈式基數排序
10.7 各種內部排序方法的比較討論
第11章 外部排序
11.1 外存信息的存取
11.2 外部排序的方法
11.3 多路平衡歸併的實現
11.4 置換一選擇排序
11.5 最佳歸併樹
第12章 檔案
12.1 有關檔案的基本概念
12.2 順序檔案
12.3 索引檔案
12.4 ISAM檔案和VSAM檔案
12.4.1 ISAM檔案
12.4.2 VSAM檔案
12.5 直接存取檔案(散列檔案)
12.6 多關鍵字檔案
12.6.1 多重表檔案
12.6.2 倒排檔案
附錄A 名詞索引
附錄B 函式索引
參考書目
中國鐵道出版社出版圖書
基本信息
書名:數據結構(C語言版)套系名稱:高職高專計算機實用教程系列規劃教材
書號:978-7-113-12943-9 版次:1-1 開本:16開 頁碼:236頁
作者:王桂芝
出版時間:2011-08-01
定價:24 元
出版社:中國鐵道出版社
適用專業:計算機專業
內容簡介
"本書重點討論了各種基本數據結構的類型描述、常用算法實現及其套用。全書共分9章:第1章主要介紹了有關數據結構的基本概念和術語;第2章~第7章分別討論了線性表、棧和佇列、串、數組和廣義表、樹及圖等基本類型的數據結構;第8章和第9章主要討論了查找和排序的各種實現方法及其綜合分析比較。除第1章外,其餘每章最後一節以實訓的形式給出了本章重點算法的套用實例,以便於上機驗證。本書基本理論的闡述由淺入深、算法描述清晰、內容安排合理、語言精練、邏輯推理嚴密,適合作為高職高專院校計算機類或信息類相關專業的教材,也可為計算機專業人員自學或參加計算機類考試提供參考。
圖書目錄
"第1章 數據結構概述 11.1 數據結構課程的性質和地位 1
1.1.1 數據結構課程所討論的內容 1
1.1.2 數據結構在計算機學科中的地位 4
1.1 數據結構課程的性質和地位 1
1.1.1 數據結構課程所討論的內容 1
1.1.2 數據結構在計算機學科中的地位 4
1.2 基本概念和術語 5
1.2.1 數據結構的相關術語 5
1.2.2 數據的邏輯結構 5
1.2.3 數據的存儲結構 6
1.2.4 數據類型和抽象數據類型 7
1.3 算法及算法分析 8
1.3.1 算法的概念 8
1.3.2 算法的設計要求 8
1.3.3 算法的時間複雜度 9
1.3.4 算法的空間複雜度 11
本章小結 11
習題 12
第2章 線性表 15
2.1 線性表的邏輯結構 15
2.1.1 線性表的定義 15
2.1.2 線性表的常用操作 16
2.2 線性表的順序存儲結構 16
2.2.1 順序表的類型定義 17
2.2.2 順序表的基本運算 18
2.3 線性表的鏈式存儲結構 21
2.3.1 單鍊表 21
2.3.2 循環鍊表 25
2.3.3 雙向鍊表 26
2.3.4 靜態鍊表 28
2.4 兩種存儲結構的比較 28
2.5 實訓 29
本章小結 31
習題 32
第3章 棧和佇列 35
3.1 棧 35
3.1.1 棧的定義及常用操作 35
3.1.2 棧的順序存儲結構 36
3.1.3 棧的鏈式存儲結構 40
3.1.4 棧的套用 41
3.2 佇列 47
3.2.1 佇列的定義及常用操作 47
3.2.2 佇列的順序存儲結構 47
3.2.3 佇列的鏈式存儲結構 49
3.2.4 佇列的套用 51
3.3 實訓 52
本章小結 55
習題 56
第4章 串 58
4.1 串的定義及常用操作 58
4.1.1 串的定義及相關術語 58
4.1.2 串的常用操作 59
4.2 串的存儲結構 59
4.2.1 串的定長順序存儲結構 60
4.2.2 串的動態順序存儲結構 62
4.2.3 串的鏈式存儲結構 63
4.3 串的模式匹配 63
4.4 串的套用 65
4.5 實訓 66
本章小結 68
習題 68
第5章 數組和廣義表 71
5.1 數組 71
5.1.1 數組的定義及常用操作 71
5.1.2 數組的順序存儲結構及基本運算 72
5.2 矩陣的壓縮存儲 73
5.2.1 特殊矩陣 73
5.2.2 稀疏矩陣 76
5.3 廣義表 77
5.3.1 廣義表的定義及常用操作 78
5.3.2 廣義表的存儲結構 79
* 5.3.3 廣義表基本操作的實現 82
5.4 實訓 83
本章小結 86
習題 87
第6章 樹 89
6.1 樹的邏輯結構 89
6.1.1 樹的定義及邏輯特徵 89
6.1.2 樹的表示形式 90
6.1.3 樹的基本術語 91
6.1.4 樹的常用操作 92
6.2 二叉樹 92
6.2.1 二叉樹的定義及常用操作 92
6.2.2 二叉樹的性質 93
6.2.3 二叉樹的存儲結構 96
6.3 二叉樹的遍歷 97
6.3.1 二叉樹遍歷的概念 97
6.3.2 二叉樹遍歷的算法 98
6.4 構造二叉樹 101
6.4.1 由遍歷序列構造二叉樹 101
6.4.2 構造二叉樹的算法 103
6.4.3 二叉樹的其他遞歸算法 104
6.5 線索二叉樹 105
6.5.1 線索二叉樹的概念 105
6.5.2 二叉樹的線索化 106
6.5.3 線索二叉樹的主要算法 107
6.6 樹和森林 109
6.6.1 樹的存儲結構 109
6.6.2 樹、森林和二叉樹的轉換 112
6.6.3 樹和森林的遍歷 115
6.7 哈夫曼樹 116
6.7.1 哈夫曼樹的定義 116
6.7.2 哈夫曼樹的構造算法 118
6.7.3 哈夫曼編碼 119
6.8 實訓 120
本章小結 123
習題 123
第7章 圖 127
7.1 圖的定義和術語 127
7.1.1 圖的基本概念 128
7.1.2 圖的基本操作 130
7.2 圖的存儲結構 130
7.2.1 鄰接矩陣表示法 130
7.2.2 鄰接表表示法 131
7.3 圖的遍歷 132
7.3.1 深度優先搜尋 133
7.3.2 廣度優先搜尋 134
7.4 生成樹和最小生成樹 136
7.4.1 基本概念 136
7.4.2 普里姆(Prim)算法 137
7.4.3 克魯斯卡爾(Kruskal)算法 138
7.5 有向無環圖及其套用 139
7.5.1 拓撲排序 139
7.5.2 關鍵路徑 142
7.6 最 短 路 徑 145
7.6.1 最短路徑的概念 145
7.6.2 單源最短路徑 145
7.6.3 所有頂點之間的最短路徑 148
7.7 實訓 151
本章小結 153
習題 154
第8章 查找 158
8.1 查找的基本概念 158
8.2 線性表查找 160
8.2.1 順序查找 160
8.2.2 折半查找 161
8.2.3 索引查找 164
8.3 樹 表 查 找 165
8.3.1 二叉排序樹 165
* 8.3.2 平衡二叉樹 170
8.4 哈希表查找 176
8.4.1 哈希表的定義 176
8.4.2 哈希函式的構造 176
8.4.3 衝突處理方法 178
8.4.4 哈希表的查找及其分析 180
8.5 實訓 182
本章小結 184
習題 185
第9章 內部排序 189
9.1 排序概述 189
9.1.1 排序的基本概念 190
9.1.2 排序的分類 190
9.1.3 排序算法性能評價 190
9.1.4 排序數據的類型說明 191
9.2 插入排序 191
9.2.1 直接插入排序 191
9.2.2 折半插入排序 193
9.2.3 希爾排序 194
9.3 交換排序 196
9.3.1 冒泡排序 196
9.3.2 快速排序 198
9.4 選擇排序 202
9.4.1 簡單選擇排序 202
9.4.2 樹形選擇排序 203
9.4.3 堆排序 204
9.5 歸併排序 209
9.6 基數排序 211
9.6.1 多關鍵字排序 211
9.6.2 基數排序 212
9.7 各種內部排序方法的比較 216
9.8 實訓 217
本章小結 220
習題 221
參考文獻 224
實訓項目8 Word 2003表格操作 270
實訓項目9 Word 2003的圖文混排 275
第4章 Excel 2003實訓 280
實訓項目10 Excel 2003基本操作 280
實訓項目11 工作表的編輯與格式化 284
實訓項目12 排序和篩選 288
實訓項目13 分類匯總和數據透視表 291
實訓項目14 圖表的製作 293
第5章 PowerPoint 2003實訓 298
實訓項目15 PowerPoint 2003基本操作 298
實訓項目16 幻燈片的編輯 301
實訓項目17 演示文稿的放映 304
實訓項目18 幻燈片動態效果的設定 308
第6章 網路操作實訓 311
實訓項目19 IE瀏覽器的使用 311
實訓項目20 E-mail的使用 315
實訓項目21 Outlook Express的使用 318
實訓項目22 信息搜尋和下載 324
附錄A Windows XP的安裝 330