出版時(shí)間:2012-1 出版社:東軟電子出版社 作者:楊勇虎 編 頁數(shù):510 字?jǐn)?shù):957000
內(nèi)容概要
本教材的編寫主要有如下特點(diǎn):(1)本書的每個(gè)算法實(shí)現(xiàn)都是完整的、全部可以運(yùn)行通過的C語言程序,便于學(xué)生進(jìn)行大量實(shí)踐。(2)每章前均有課前導(dǎo)學(xué)一節(jié),便于學(xué)生初步了解每章內(nèi)容,清楚該如何學(xué)習(xí)。(3)每章后均有總結(jié),從整體上回顧課程的知識(shí)點(diǎn),提出重點(diǎn)難點(diǎn),便于學(xué)生更好地學(xué)習(xí)。(4)本書穿插了一些板塊內(nèi)容,譬如:幫助理解、腳下留心、深度探險(xiǎn)等,便于學(xué)生更好地理解具體內(nèi)容。(5)本書每章均配有具體的應(yīng)用實(shí)例,便于學(xué)生提高學(xué)習(xí)的興趣,明白具體的應(yīng)用。(6)本書的編寫基本是以提出問題――分析問題――解決問題的思路進(jìn)行的。語言通俗易懂、思路清晰、層次鮮明。便于學(xué)生逐步培養(yǎng)和提高分析問題和解決問題的能力。(7)結(jié)合大連東軟信息學(xué)院使用TOPCARES-CDIO理念對(duì)于教學(xué)的改造,本課程重點(diǎn)培養(yǎng)學(xué)生的9個(gè)能力(詳見“教材設(shè)計(jì)與教學(xué)建議”內(nèi)容),各章相關(guān)具體能力要求、教學(xué)要求、教學(xué)重點(diǎn)以及教學(xué)難點(diǎn)等在每一章前面列出,希望讀者在學(xué)習(xí)時(shí)加以注意。(8)每章的實(shí)驗(yàn)以TOPCARES-CDIO工程教育理念為指導(dǎo)思想,每一小節(jié)對(duì)應(yīng)一個(gè)單元項(xiàng)目或單元組項(xiàng)目,在每個(gè)項(xiàng)目中,或編寫函數(shù)來實(shí)現(xiàn)一個(gè)算法,或編寫類型(以及與類型相關(guān)的函數(shù))來實(shí)現(xiàn)一種數(shù)據(jù)結(jié)構(gòu)。
書籍目錄
第1章 緒論
1.1為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
1.2什么是數(shù)據(jù)結(jié)構(gòu)
1.2.1數(shù)據(jù)的邏輯結(jié)構(gòu)
1.2.2數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
1.3算法
1.4C語言基礎(chǔ)
1.4.1基本數(shù)據(jù)類型
1.4.2構(gòu)造數(shù)據(jù)類型
1.4.3指針類型
1.4.4函數(shù)
1.4.5程序結(jié)構(gòu)化和設(shè)計(jì)風(fēng)格
本章小結(jié)
1.5C語言項(xiàng)目實(shí)踐
1.5.1求PI值
1.5.2求斐波那契數(shù)列第n項(xiàng)的值
1.5.3求兩個(gè)非負(fù)整數(shù)的最大公約數(shù)
1.5.4篩選法求素?cái)?shù)
1.5.5字符串加密與解密
1.5.6模擬投擲兩個(gè)骰子
1.5.7正態(tài)分布的隨機(jī)小數(shù)
1.6習(xí)題
1.6.1知識(shí)點(diǎn):數(shù)據(jù)結(jié)構(gòu)的定義
1.6.2知識(shí)點(diǎn):算法的概念
第2章 線性表
2.1項(xiàng)目導(dǎo)學(xué)
2.2線性表的邏輯結(jié)構(gòu)
2.3線性表的順序存儲(chǔ)結(jié)構(gòu)
2.3.1順序表的基本概念
2.3.2順序表類型定義
2.3.3順序表的基本運(yùn)算
2.3.4順序表存儲(chǔ)的優(yōu)缺點(diǎn)
2.4線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
2.4.1單鏈表
2.4.2循環(huán)鏈表
2.4.3雙向鏈表
2.5應(yīng)用實(shí)例
本章小結(jié)
2.6線性表項(xiàng)目實(shí)踐
2.6.1動(dòng)態(tài)存儲(chǔ)的順序表
2.6.2雙向鏈表
2.6.3有序雙向鏈表
2.6.4一元多次多項(xiàng)式運(yùn)算
2.7習(xí)題
2.7.1知識(shí)點(diǎn):線性表的邏輯結(jié)構(gòu)
2.7.2知識(shí)點(diǎn):線性表的順序存儲(chǔ)結(jié)構(gòu)
2.7.3知識(shí)點(diǎn):線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
第3章 棧和隊(duì)列
3.1項(xiàng)目導(dǎo)學(xué)
3.2棧
3.2.1棧的邏輯結(jié)構(gòu)及基本運(yùn)算
3.2.2棧的存儲(chǔ)實(shí)現(xiàn)和運(yùn)算實(shí)現(xiàn)
3.3棧的應(yīng)用舉例
3.3.1數(shù)制轉(zhuǎn)換問題
3.3.2表達(dá)式求值
3.3.3棧與遞歸
3.4隊(duì)列
3.4.1隊(duì)列的定義及基本運(yùn)算
3.4.2隊(duì)列的存儲(chǔ)實(shí)現(xiàn)及運(yùn)算實(shí)現(xiàn)
3.5隊(duì)列應(yīng)用舉例
本章小結(jié)
3.6棧和隊(duì)列項(xiàng)目實(shí)踐
3.6.1基于動(dòng)態(tài)順序表的棧的實(shí)現(xiàn)
3.6.2基于動(dòng)態(tài)順序表的循環(huán)隊(duì)列的實(shí)現(xiàn)
3.6.3進(jìn)制轉(zhuǎn)換
3.6.4簡(jiǎn)單表達(dá)式求值
3.6.5n皇后問題
3.7習(xí)題
3.7.1知識(shí)點(diǎn):棧的基本概念
3.7.2知識(shí)點(diǎn):棧的存儲(chǔ)
3.7.3知識(shí)點(diǎn):隊(duì)列的基本概念及其應(yīng)用
3.7.4知識(shí)點(diǎn):隊(duì)列的存儲(chǔ)
第4章 樹和二叉樹
4.1項(xiàng)目導(dǎo)學(xué)
4.2樹
4.2.1樹的定義
4.2.2樹的基本術(shù)語
4.3二叉樹
4.3.1二叉樹的定義
4.3.2二叉樹的性質(zhì)
4.3.3二叉樹的基本操作
4.3.4二叉樹的應(yīng)用
4.4二叉樹和樹的存儲(chǔ)結(jié)構(gòu)
4.4.1二叉樹的存儲(chǔ)結(jié)構(gòu)
4.4.2樹的存儲(chǔ)結(jié)構(gòu)
4.5樹、森林向二叉樹的轉(zhuǎn)換
4.5.1樹向二叉樹的轉(zhuǎn)換
4.5.2森林向二叉樹的轉(zhuǎn)換
4.6樹與二叉樹的遍歷
4.6.1二叉樹的遍歷
4.6.2應(yīng)用實(shí)例
4.6.3樹的遍歷
4.6.4線索二叉樹
4.7哈夫曼樹(Huffman)
4.7.1哈夫曼樹的基本概念
4.7.2構(gòu)造哈夫曼樹
4.7.3哈夫曼編碼
本章小結(jié)
4.8二叉樹項(xiàng)目實(shí)踐
4.8.1二叉樹的鏈?zhǔn)酱鎯?chǔ)及常見操作
4.8.2二叉樹的順序存儲(chǔ)及常見操作
4.8.3Huffman編碼
4.9習(xí)題
4.9.1知識(shí)點(diǎn):樹和二叉樹的基本概念
4.9.2知識(shí)點(diǎn):二叉樹和樹的存儲(chǔ)結(jié)構(gòu)
4.9.3知識(shí)點(diǎn):樹、森林向二叉樹的轉(zhuǎn)換
4.9.4知識(shí)點(diǎn):樹與二叉樹的遍歷圖
4.9.5知識(shí)點(diǎn):哈夫曼樹
第5章 圖
5.1項(xiàng)目導(dǎo)學(xué)
5.2圖的基本概念
5.2.1圖的定義和術(shù)語
5.2.2圖的基本操作
5.3圖的存儲(chǔ)
5.3.1圖的數(shù)組存儲(chǔ)
5.3.2圖的鄰接表存儲(chǔ)
5.3.3有向圖的十字鏈表存儲(chǔ)
5.3.4無向圖的鄰接多重鏈表存儲(chǔ)
5.4圖的遍歷
5.4.1深度優(yōu)先搜索遍歷
5.4.2廣度優(yōu)先搜索遍歷
5.4.3圖的連通性
5.4.4生成樹和生成森林
5.5最小生成樹
5.5.1基本概念
5.5.2克魯斯卡爾(Kruskal)算法
5.5.3普里姆(Prim)算法
5.6圖的應(yīng)用
5.6.1最短路徑
5.6.2AOV網(wǎng)與拓?fù)渑判?br />5.6.3AOE圖與關(guān)鍵路徑
本章小結(jié)
5.7圖的項(xiàng)目實(shí)踐
5.7.1圖的鄰接矩陣存儲(chǔ)與遍歷
5.7.2最短路徑
5.7.3圖的鄰接鏈表存儲(chǔ)與遍歷
5.7.4拓?fù)渑判?br />5.8習(xí)題
5.8.1知識(shí)點(diǎn):圖的基本概念
5.8.2知識(shí)點(diǎn):圖的存儲(chǔ)
5.8.3知識(shí)點(diǎn):圖的遍歷
5.8.4知識(shí)點(diǎn):最小生成樹
5.8.5知識(shí)點(diǎn):圖的應(yīng)用
第6章 排序
6.1項(xiàng)目導(dǎo)學(xué)
6.2基本概念
6.3插入排序
6.3.1直接插入排序
6.3.2希爾排序
6.4交換排序
6.4.1冒泡排序
6.4.2快速排序
6.5選擇排序
6.5.1直接選擇排序
6.5.2堆排序
6.6歸并排序
6.7基數(shù)排序
6.8各種內(nèi)部排序方法的比較和選擇
本章小結(jié)
6.9排序項(xiàng)目實(shí)踐
6.10習(xí)題
6.10.1知識(shí)點(diǎn):直接插入排序
6.10.2知識(shí)點(diǎn):希爾排序
6.10.3知識(shí)點(diǎn):冒泡排序
6.10.4知識(shí)點(diǎn):快速排序
6.10.5知識(shí)點(diǎn):直接選擇排序
6.10.6知識(shí)點(diǎn):堆排序
6.10.7知識(shí)點(diǎn):歸并排序
6.10.8知識(shí)點(diǎn):基數(shù)排序
6.10.9綜合習(xí)題
第7章 查找
7.1項(xiàng)目導(dǎo)學(xué)
7.2相關(guān)概念
7.3查找算法的度量
7.4靜態(tài)查找表
7.4.1順序查找
7.4.2折半查找
7.4.3分塊查找
7.5動(dòng)態(tài)查找表
7.5.1二叉排序樹
7.5.2平衡二叉樹
7.5.3B-樹和B+樹
7.6哈希表查找
7.6.1哈希表與哈希查找
7.6.2哈希函數(shù)的構(gòu)造方法
7.6.3處理沖突的方法
7.6.4哈希表的查找分析
本章小結(jié)
7.7查找項(xiàng)目實(shí)踐
7.8習(xí)題
7.8.1知識(shí)點(diǎn):順序查找
7.8.2知識(shí)點(diǎn):折半查找
7.8.3知識(shí)點(diǎn):二叉排序樹
7.8.4知識(shí)點(diǎn):平衡二叉樹
7.8.5知識(shí)點(diǎn):B-樹和B+樹
7.8.6知識(shí)點(diǎn):哈希查找
7.8.7綜合習(xí)題
第8章 數(shù)組和廣義表
8.1項(xiàng)目導(dǎo)學(xué)
8.2數(shù)組的順序存儲(chǔ)結(jié)構(gòu)
8.3特殊數(shù)組的壓縮存儲(chǔ)
8.3.1稀疏數(shù)組
8.3.2特殊矩陣
8.4廣義表的定義和操作
8.5廣義表的存儲(chǔ)結(jié)構(gòu)
8.6廣義表的應(yīng)用實(shí)例
本章小結(jié)
8.7數(shù)組和廣義表項(xiàng)目實(shí)踐
8.7.1稀疏矩陣的壓縮存儲(chǔ)
8.7.2矩陣轉(zhuǎn)置與矩陣相乘
8.7.3廣義表結(jié)構(gòu)的實(shí)現(xiàn)
8.7.4廣義表結(jié)構(gòu)的應(yīng)用
8.8習(xí)題
8.8.1知識(shí)點(diǎn):數(shù)組的定義和順序存儲(chǔ)
8.8.2知識(shí)點(diǎn):特殊數(shù)組的壓縮存儲(chǔ)
8.8.3知識(shí)點(diǎn):廣義表的基本概念
第9章 串
9.1項(xiàng)目導(dǎo)學(xué)
9.2串的定義
9.3串的存儲(chǔ)結(jié)構(gòu)
9.3.1串的順序存儲(chǔ)
9.3.2串的鏈?zhǔn)酱鎯?chǔ)
9.4串的基本操作
9.4.1求串長(zhǎng)度
9.4.2串拷貝
9.4.3串連接
9.4.4串比較
9.4.5求子串
9.4.6串的模式匹配
本章小結(jié)
9.5字符串項(xiàng)目實(shí)踐
9.5.1模仿C語言庫函數(shù)strncpy
9.5.2模仿C語言庫函數(shù)strncat
9.5.3模仿C語言庫函數(shù)strncmp
9.5.4求字符串的子串
9.5.5串的模式匹配
9.5.6基于動(dòng)態(tài)內(nèi)存的字符串結(jié)構(gòu)
9.6習(xí)題
9.6.1知識(shí)點(diǎn):串的基本概念
9.6.2知識(shí)點(diǎn):串的操作和順序存儲(chǔ)
9.6.3知識(shí)點(diǎn):串的模式匹配
第10章 綜合測(cè)試
10.1綜合測(cè)試題1
10.2綜合測(cè)試題2
參考文獻(xiàn)
圖書封面
評(píng)論、評(píng)分、閱讀與下載
CDIO工程教育系列教程·計(jì)算機(jī)專業(yè)基礎(chǔ)類 PDF格式下載