本書(shū)是高職高專(zhuān)、應(yīng)用型本科計(jì)算機(jī)類(lèi)專(zhuān)業(yè)的教材,在內(nèi)容的編排上盡量符合高等院校的要求,敘述簡(jiǎn)潔、深入淺出,注重實(shí)踐和應(yīng)用。本書(shū)對(duì)常用數(shù)據(jù)結(jié)構(gòu)的基本概念做了介紹,在講解數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)時(shí),使用了大量的圖示和表格,有助于讀者對(duì)數(shù)據(jù)結(jié)構(gòu)及相關(guān)算法的理解。全書(shū)共分10章,第1章為數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ),第2~8章分別介紹了線性表、棧和隊(duì)列、串及數(shù)組、樹(shù)和二叉樹(shù)、圖、查找、排序,第9章為綜合實(shí)例,第10章為實(shí)驗(yàn)。全書(shū)用C語(yǔ)言作為算法描述語(yǔ)言,本書(shū)還附有游戲及一些典型實(shí)驗(yàn)項(xiàng)目,可供讀者上機(jī)練習(xí)每章的知識(shí)。
本書(shū)主要面向高等院校計(jì)算機(jī)類(lèi)專(zhuān)業(yè)的學(xué)生,也可以作為非計(jì)算機(jī)類(lèi)專(zhuān)業(yè)學(xué)生的選修課教材和相關(guān)技術(shù)人員的自學(xué)參考書(shū)。
為了方便教學(xué),本書(shū)配有電子課件等教學(xué)資源。凡選用本書(shū)作為教材的教師均可登錄機(jī)械工業(yè)出版社教育服務(wù)網(wǎng)(www.compedu.com)下載。
目 錄
目 錄
前 言
第1章 數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)
1.1 初識(shí)數(shù)據(jù)與結(jié)構(gòu)
1.2 數(shù)據(jù)結(jié)構(gòu)的概念
1.2.1 基本概念和術(shù)語(yǔ)
1.2.2 數(shù)據(jù)結(jié)構(gòu)的物理結(jié)構(gòu)
與邏輯結(jié)構(gòu)
1.2.3 數(shù)據(jù)結(jié)構(gòu)=數(shù)據(jù)+數(shù)據(jù)的物理
結(jié)構(gòu)+數(shù)據(jù)的邏輯結(jié)構(gòu)
1.2.4 數(shù)據(jù)類(lèi)型與抽象數(shù)據(jù)類(lèi)型
1.3 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
1.4 如何學(xué)好數(shù)據(jù)結(jié)構(gòu)
1.5 算法和算法分析基礎(chǔ)
1.5.1 算法特性
1.5.2 算法描述
1.5.3 算法性能分析與度量
1.5.4 算法大致分類(lèi)
1.6 習(xí)題
第2章 線性表
2.1 線性表的邏輯結(jié)構(gòu)
2.1.1 線性表的定義
2.1.2 線性表的基本操作
2.2 線性表的物理結(jié)構(gòu)
2.2.1 順序表存儲(chǔ)結(jié)構(gòu)及基本運(yùn)算
的實(shí)現(xiàn)
2.2.2 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及基本運(yùn)算
的實(shí)現(xiàn)
2.2.3 循環(huán)鏈表
2.2.4 雙向鏈表
2.3 線性表的應(yīng)用
2.4 習(xí)題
第3章 棧和隊(duì)列
3.1 棧
3.1.1 棧的定義及基本運(yùn)算
3.1.2 棧的存儲(chǔ)實(shí)現(xiàn)和運(yùn)算實(shí)現(xiàn)
3.2 棧的應(yīng)用舉例
3.3 隊(duì)列
3.3.1 隊(duì)列的定義及基本運(yùn)算
3.3.2 隊(duì)列的存儲(chǔ)實(shí)現(xiàn)及運(yùn)算實(shí)現(xiàn)
3.4 棧應(yīng)用舉例
3.5 習(xí)題
第4章 串及數(shù)組
4.1 串及其基本運(yùn)算
4.1.1 串的基本概念
4.1.2 串的基本運(yùn)算
4.2 串的定長(zhǎng)順序存儲(chǔ)及基本運(yùn)算
4.3 串的鏈?zhǔn)酱鎯?chǔ)及基本運(yùn)算
4.4 模式匹配
4.5 數(shù)組
4.6 應(yīng)用舉例
4.7 習(xí)題
第5章 樹(shù)和二叉樹(shù)
5.1 樹(shù)的定義及相關(guān)術(shù)語(yǔ)
5.1.1 樹(shù)的定義
5.1.2 基本術(shù)語(yǔ)
5.2 二叉樹(shù)
5.2.1 二叉樹(shù)的定義和基本操作
5.2.2 二叉樹(shù)的主要性質(zhì)
5.2.3 二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)
5.2.4 遍歷二叉樹(shù)
5.2.5 二叉樹(shù)其他常見(jiàn)操作的相關(guān)
算法
5.3 樹(shù)和森林
5.3.1 樹(shù)的存儲(chǔ)結(jié)構(gòu)
5.3.2 樹(shù)、森林與二叉樹(shù)的轉(zhuǎn)換
5.4 赫夫曼樹(shù)
5.4.1 赫夫曼樹(shù)的定義
5.4.2 赫夫曼編碼
5.5 樹(shù)的應(yīng)用
5.6 習(xí)題
第6章 圖
6.1 圖的基本概念
6.2 圖的存儲(chǔ)表示
6.2.1 鄰接矩陣
6.2.2 鄰接表
6.3 圖的遍歷
6.3.1 深度優(yōu)先遍歷
6.3.2 廣度優(yōu)先搜索
6.4 最小生成樹(shù)
6.4.1 最小生成樹(shù)的基本概念
6.4.2 構(gòu)造最小生成樹(shù)的
Prim算法
6.4.3 構(gòu)造最小生成樹(shù)的Kruskal
算法
6.5 最短路徑
6.5.1 從一個(gè)源點(diǎn)到其他各點(diǎn)的
最短路徑
6.5.2 每對(duì)頂點(diǎn)之間的最短路徑
6.6 拓?fù)渑判?br>
6.6.1 拓?fù)渑判虻母拍?br>
6.6.2 拓?fù)渑判蛩惴?br>
6.7 圖的應(yīng)用
6.8 習(xí)題
第7章 查找
7.1 基本概念與術(shù)語(yǔ)
7.2 線性表查找
7.2.1 順序查找
7.2.2 折半查找
7.2.3 分塊查找
7.3 二叉排序樹(shù)
7.3.1 二叉排序樹(shù)的定義
7.3.2 二叉排序樹(shù)的插入和生成
7.3.3 二叉排序樹(shù)的刪除操作
7.3.4 二叉排序樹(shù)的查找
7.4 哈希表查找
7.4.1 哈希表與哈希方法
7.4.2 哈希函數(shù)的構(gòu)造方法
7.4.3 處理沖突的方法
7.5 應(yīng)用舉例
7.6 習(xí)題
第8章 排序
8.1 排序的概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 希爾排序
8.3 交換排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 選擇排序
8.4.1 簡(jiǎn)單選擇排序
8.4.2 堆排序
8.5 二路歸并排序
8.6 基數(shù)排序
8.7 應(yīng)用舉例
8.8 習(xí)題
第9章 綜合實(shí)例——旅游景區(qū)信息
管理系統(tǒng)
9.1 項(xiàng)目需求
9.2 知識(shí)目標(biāo)
9.3 系統(tǒng)功能設(shè)計(jì)
9.4 數(shù)據(jù)結(jié)構(gòu)
9.5 程序清單
第10章 實(shí)驗(yàn)
實(shí)驗(yàn)一 單鏈表操作
實(shí)驗(yàn)二 棧
實(shí)驗(yàn)三 隊(duì)列
實(shí)驗(yàn)四 二叉樹(shù)
實(shí)驗(yàn)五 圖的遍歷操作
實(shí)驗(yàn)六 查找
實(shí)驗(yàn)七 排序
參考文獻(xiàn)