數據結構

C語言描述第二版

《數據結構(C語言描述)(第2版)》是2015年9月1日出版的圖書,作者是齊景嘉、王夢菊。

內容簡介


《數據結構 用C語言描述(第2版)》根據教育部計算機類專業教學指導委員會制定的“數據結構與演演算法”課程大綱和《全國碩士研究生入學統一考試計算機專業基礎綜合考試大綱》的要求而編寫,跟蹤技術發展需要,教材體系科學,內容簡潔實用。
《數據結構 用C語言描述(第2版)》共10章。內容包括基本概念、基本結構(線性表、棧與隊列、串、數組與廣義表、樹、圖)和基本技術(查找方法與排序方法)三大部分,每章均附有小結與典型題例,並配有大量的例題、習題與實習題,連貫性強。與《數據結構 用C語言描述(第2版)》配套的教學資源豐富,按章節知識樹的結構構成,包括教學視頻、部分擴展內容、課程設計與課程實習指導、多媒體教學課件、演演算法源碼等,適合網路學習使用。
《數據結構 用C語言描述(第2版)》既可作為高等學校計算機及相關專業數據結構課程的教材,也可供從事計算機應用開發的工程技術人員參考使用。
本書共分10章,詳細介紹了各種數據結構以及查找、排序的各種方法,對每一種類型的數據結構都以實例為切入點,詳細敘述其基本概念、邏輯結構、存儲結構和常用演演算法。本書知識組織清晰、演演算法完整,便於讀者上手,有配套出版的《數據結構習題與實訓教程(C語言描述)(第2版)》(ISBN9787302409724),以便課後複習或參加各類技能考試及考研使用。本書專為本科計算機類專業學生學習“數據結構”課程而編寫,本著注重理論與應用相結合的原則,選材精細,對基本理論的敘述深入淺出、通俗易懂。書中實例豐富,對主要演演算法均給出了C語言函數。為了便於教學,每章后配有例題及例題解答。

圖書目錄


第1章概述
1.1引言
1.2基本概念與術語
1.3抽象數據類型
1.4演演算法和演演算法的分析
1.4.1演演算法的基本概念
1.4.2演演算法的時間複雜度
1.4.3演演算法的空間複雜度
本章小結
第2章線性表
2.1線性表的邏輯結構
2.1.1線性表的引例
2.1.2線性表的定義
2.1.3線性表的基本操作
2.2線性表的順序存儲結構
2.2.1順序表結構
2.2.2順序表的基本操作
2.3線性表的鏈式存儲結構
2.3.1鏈式存儲結構
2.3.2單鏈表上的基本運算
2.3.3循環鏈表和雙向鏈表
2.4順序表與鏈表的比較
2.5線性表的應用
本章小結
第3章棧和隊列
3.1棧
3.1.1棧的引例
3.1.2棧的類型定義
3.1.3棧的順序存儲表示和操作的實現
3.1.4棧的鏈式存儲表示和操作的實現
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.2.3串的塊鏈存儲
4.3串運算的實現
4.3.1樸素模式匹配演演算法
4.3.2模式匹配的KMP演演算法
4.3.3模式匹配的BruteForce演演算法
4.4串的應用
本章小結
第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.4廣義表的定義與性質
5.4.1廣義表的定義
5.4.2廣義表的性質
5.5廣義表的存儲結構
5.5.1頭尾表示法
5.5.2孩子兄弟表示法
5.6廣義表的基本操作
5.7數組的應用
本章小結
第6章樹和二叉樹
6.1樹的概念和基本操作
6.1.1樹的引例
6.1.2樹的定義和基本術語
6.1.3樹的表示方法
6.1.4樹的基本操作
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.4.4層次遍歷
6.5線索二叉樹
6.5.1線索二叉樹的概念
6.5.2中序線索二叉樹的構造演演算法
6.5.3線索二叉樹的遍歷
6.6哈夫曼樹及其應用
6.6.1哈夫曼樹的定義
6.6.2構造哈夫曼樹
6.6.3哈夫曼樹的應用
6.7樹與森林
6.7.1樹的存儲結構
6.7.2樹、森林與二叉樹的轉換
6.7.3樹和森林的遍歷
6.8二叉樹的應用
本章小結
第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.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每一對頂點之間的最短路徑
7.7圖的應用
本章小結
第8章查找
8.1基本概念
8.2靜態查找表
8.2.1順序表的查找
8.2.2有序表的查找
8.2.3靜態樹表的查找
8.2.4索引順序表的查找
8.3動態查找表
8.3.1二叉排序樹和平衡二叉樹
8.3.2B樹和B+樹
8.4哈希表
8.4.1哈希表的概念
8.4.2哈希函數的構造方法
8.4.3處理衝突的方法
8.4.4哈希表的查找及其分析
8.5查找的應用
本章小結
第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.4.3堆排序
9.5歸併排序
9.6各種內部排序方法的比較
9.7排序的應用
本章小結
第10章文件
10.1文件的基本概念
10.1.1文件引例
10.1.2文件的定義
10.1.3文件的分類
10.1.4文件的操作
10.1.5文件的組織
10.2順序文件的概念
10.3索引文件
10.3.1索引文件的概念
10.3.2索引文件的存儲
10.3.3索引文件的檢索
10.4ISAM文件和VSAM文件
10.4.1ISAM文件
10.4.2VSAM文件
10.5直接存取文件(散列文件)
10.6多關鍵字文件
10.6.1多重表文件
10.6.2倒排文件
本章小結
參考文獻