出版時(shí)間:2010-2 出版社:西安電子科技大學(xué)出版社 作者:劉肖 編 頁(yè)數(shù):210 字?jǐn)?shù):319000
前言
“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)程序設(shè)計(jì)的重要理論基礎(chǔ),是計(jì)算機(jī)相關(guān)專(zhuān)業(yè)必修的一門(mén)重要基礎(chǔ)課程和核心課程?!皵?shù)據(jù)結(jié)構(gòu)”主要介紹各種類(lèi)型的數(shù)據(jù)結(jié)構(gòu)及在其上進(jìn)行的各種運(yùn)算,包含了較多的理論知識(shí),也有較高的實(shí)踐要求。為了達(dá)到理論與實(shí)踐的結(jié)合統(tǒng)一,本書(shū)秉承以應(yīng)用為主體,注重培養(yǎng)實(shí)踐能力的指導(dǎo)思想,在強(qiáng)調(diào)理論知識(shí)的理解和運(yùn)用的同時(shí),更加注重結(jié)合高職高專(zhuān)教學(xué)的要求,體現(xiàn)對(duì)學(xué)生應(yīng)用能力的培養(yǎng)。 本書(shū)主要面向高職高專(zhuān)院校計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的學(xué)生?! ∪珪?shū)共分8章。第1章為概述,主要闡述數(shù)據(jù)結(jié)構(gòu)的相關(guān)概念、算法的描述和算法分析方法;第2章為線性表,主要討論線性結(jié)構(gòu)的順序和鏈?zhǔn)奖硎痉椒?、存?chǔ)方法和各種操作方法以及應(yīng)用:第3章為棧和隊(duì)列,主要討論棧和隊(duì)列這兩種限定性的線性表的表示、存儲(chǔ)方法和操作方法以及應(yīng)用:第4章為串與數(shù)組,主要討論串與數(shù)組的存儲(chǔ)方法和各種應(yīng)用;第5章為樹(shù)與二叉樹(shù),主要討論樹(shù)與二叉樹(shù)的定義、存儲(chǔ)方法、運(yùn)算方法及應(yīng)用;第6章為圖,主要討論圖的各種概念、存儲(chǔ)方法、遍歷方法以及圖的多種實(shí)際應(yīng)用:第7章為查找,主要討論查找的概念、各種查找方法及應(yīng)用;第8章為排序,主要討論排序的概念、各種排序方法及應(yīng)用。
內(nèi)容概要
本書(shū)從實(shí)際應(yīng)用的角度出發(fā),介紹了數(shù)據(jù)結(jié)構(gòu)的基本知識(shí)和各種數(shù)據(jù)結(jié)構(gòu)的實(shí)際應(yīng)用。全書(shū)共分8章,主要內(nèi)容包括線性表、棧與隊(duì)列、串與數(shù)組、樹(shù)、圖、查找及排序等。各部分內(nèi)容均從實(shí)際應(yīng)用問(wèn)題引入基本知識(shí)的講解和描述,使讀者更容易理解所學(xué)知識(shí)的應(yīng)用目標(biāo),并在講解中使用大量的實(shí)例來(lái)說(shuō)明基本知識(shí)的應(yīng)用。除第1章外,每章還包括了兩個(gè)實(shí)訓(xùn)項(xiàng)目,配置了多種類(lèi)型的習(xí)題,以突出實(shí)際應(yīng)用能力的培養(yǎng)。
本書(shū)可作為高職高專(zhuān)學(xué)校計(jì)算機(jī)類(lèi)專(zhuān)業(yè)學(xué)生學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”的教材,也可作為軟件技術(shù)人員的參考用書(shū)。為方便讀者學(xué)習(xí),本書(shū)的算法部分均采用c語(yǔ)言描述,實(shí)訓(xùn)項(xiàng)目也是完整的
c語(yǔ)言程序,讀者可以很方便地對(duì)書(shū)中的算法進(jìn)行上機(jī)測(cè)試。
書(shū)籍目錄
第1章 概述
1.1 引言
1.2 基本術(shù)語(yǔ)及概念
1.2.1 基本術(shù)語(yǔ)
1.2.2 數(shù)據(jù)結(jié)構(gòu)
1.3 算法描述與算法分析
1.3.1 算法與算法描述
1.3.2 算法分析
小結(jié)
習(xí)題
第2章 線性表
2.1 線性表的邏輯結(jié)構(gòu)及基本運(yùn)算
2.1.1 線性表的邏輯結(jié)構(gòu)
2.1.2 線性表的基本運(yùn)算
2.2 線性表的順序存儲(chǔ)及運(yùn)算
2.2.1 線性表的順序存儲(chǔ)——順序表
2.2.2 順序表的基本運(yùn)算
2.3 線性表的鏈?zhǔn)酱鎯?chǔ)及運(yùn)算
2.3.1 單鏈表
2.3.2 循環(huán)鏈表
2.3.3 雙向鏈表
2.3.4 靜態(tài)鏈表
小結(jié)
習(xí)題
實(shí)訓(xùn)指導(dǎo)
第3章 棧與隊(duì)列
3.1 棧
3.1.1 棧的定義及基本運(yùn)算
3.1.2 棧的順序存儲(chǔ)及運(yùn)算
3.1.3 棧的鏈?zhǔn)酱鎯?chǔ)及運(yùn)算
3.1.4 棧的應(yīng)用
3.2 隊(duì)列
3.2.1 隊(duì)列的定義及基本運(yùn)算
3.2.2 隊(duì)列的順序存儲(chǔ)及運(yùn)算
3.2.3 隊(duì)列的鏈?zhǔn)酱鎯?chǔ)及運(yùn)算
3.2.4 隊(duì)列的應(yīng)用
小結(jié)
習(xí)題
實(shí)訓(xùn)指導(dǎo)
第4章 串與數(shù)組
4.1 串
4.1.1 串的基本概念
4.1.2 串的存儲(chǔ)結(jié)構(gòu)
4.1.3 串運(yùn)算的實(shí)現(xiàn)
4.2 數(shù)組
4.2.1 數(shù)組的定義和運(yùn)算
4.2.2 數(shù)組的順序存儲(chǔ)和實(shí)現(xiàn)
4.2.3 特殊矩陣的壓縮存儲(chǔ)
小結(jié)
習(xí)題
實(shí)訓(xùn)指導(dǎo)
第5章 樹(shù)與二叉樹(shù)
5.1 樹(shù)
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 應(yīng)用實(shí)例
5.3 樹(shù)和森林
5.3.1 樹(shù)的存儲(chǔ)結(jié)構(gòu)
5.3.2 樹(shù)、森林與二叉樹(shù)的轉(zhuǎn)換
5.3.3 樹(shù)和森林的遍歷
5.4 最優(yōu)二叉樹(shù)——哈夫曼樹(shù)
5.4.1 哈夫曼樹(shù)的定義和構(gòu)造方法.
5.4.2 哈夫曼編碼
小結(jié)
習(xí)題
實(shí)訓(xùn)指導(dǎo)
第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 圖的應(yīng)用
6.4.1 生成樹(shù)和最小生成樹(shù)
6.4.2 最短路徑
6.4.3 拓?fù)渑判?br /> 小結(jié)
習(xí)題
實(shí)訓(xùn)指導(dǎo)
第7章 查找
7.1 查找的基本概念
7.2 靜態(tài)查找表
7.2.1 順序查找
7.2.2 折半查找
7.2.3 分塊查找
7.3 動(dòng)態(tài)查找表
7.3.1 二叉排序樹(shù)
7.3.2 二叉排序樹(shù)的插入和生成
7.3.3 二又排序樹(shù)的刪除
7.3.4 二叉排序樹(shù)的查找
7.3.5 二叉排序樹(shù)的查找性能
7.3.6 平衡二叉樹(shù)
7.4 哈希表查找
7.4.1 哈希表與哈希查找
7.4.2 構(gòu)造哈希函數(shù)的方法
7.4.3 處理沖突的方法
7.4.4 哈希表的查找分析
小結(jié)
習(xí)題
實(shí)訓(xùn)指導(dǎo)
第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 樹(shù)形選擇排序
8.4.3 堆排序
8.5 二路歸并排序
8.6 基數(shù)排序
8.6.1 多關(guān)鍵字排序
8.6.2 鏈?zhǔn)交鶖?shù)排序
8.7 排序方法的比較
小結(jié)
習(xí)題
實(shí)訓(xùn)指導(dǎo)
參考文獻(xiàn)
章節(jié)摘錄
對(duì)于同一個(gè)問(wèn)題可以設(shè)計(jì)出不同的算法,它們之間肯定有是否適合和“好”“差”之分。衡量一個(gè)適合的、“好”的算法,在其必須是正確的算法的基礎(chǔ)上,還應(yīng)考慮下列幾個(gè)方面: ?。?)易讀性:算法應(yīng)易于閱讀和理解,以便于調(diào)試、修改和擴(kuò)充。 ?。?)高效性:算法應(yīng)具有較高的時(shí)間效率和空間效率,即占用較短的執(zhí)行時(shí)間和較少的存儲(chǔ)空間。當(dāng)然,這兩者都和問(wèn)題的規(guī)模有關(guān)。 ?。?)健壯性:正確的輸入能得到正確的輸出,這是算法必須具有的特性之一。但當(dāng)遇到非法輸入時(shí),算法應(yīng)能做出反應(yīng)或處理(如提示信息等),而不會(huì)產(chǎn)生不需要的或不正確的結(jié)果?! ±纾覀?cè)谒惴ㄖ锌偸遣捎幂^簡(jiǎn)單的方法以及模塊化函數(shù),以增強(qiáng)算法的易讀性;采用步驟較少的求解方法,以提高算法的時(shí)間效率;對(duì)可能發(fā)生的各種現(xiàn)象及輸入形式給出應(yīng)對(duì)措施,以提高算法的健壯性?! ∫_定一個(gè)算法是適合的、“好”的算法,就需進(jìn)行算法分析。算法分析的兩個(gè)主要方面是分析算法的時(shí)間效率和空間效率,目的是以求改進(jìn)算法或?qū)Σ煌乃惴ㄟM(jìn)行比較。在目前情況下,鑒于運(yùn)算空間較為充足,我們把算法的時(shí)間效率分析作為主要內(nèi)容。 算法運(yùn)行的時(shí)間分析和程序運(yùn)行的時(shí)間分析是有區(qū)別的。同一算法由不同的程序員來(lái)編寫(xiě),所編寫(xiě)的程序會(huì)有優(yōu)劣之分,程序運(yùn)行的時(shí)間也就有所不同;程序在不同的機(jī)器上運(yùn)行的速度又和機(jī)器本身的速度有關(guān)。而我們感興趣的是對(duì)解決問(wèn)題的算法作時(shí)間上的度量分析,或?qū)鉀Q同一問(wèn)題的兩種或兩種以上算法的運(yùn)行時(shí)間加以比較?! 」浪闼惴ㄟ\(yùn)行時(shí)間需要考慮的基本因素是問(wèn)題的“規(guī)模”和算法執(zhí)行“基本操作”的次數(shù)。一個(gè)算法的“規(guī)模”和“基本操作”要視具體問(wèn)題而定?!耙?guī)?!币话闶侵篙斎肓康臄?shù)目,比如在排序問(wèn)題中,問(wèn)題的規(guī)??梢允谴判虻脑?cái)?shù)目。數(shù)據(jù)量越大,算法執(zhí)行花費(fèi)的時(shí)間就越多,它是影響時(shí)間的最主要的因素。“基本操作”一般是指算法在解決某個(gè)問(wèn)題時(shí)必須涉及到的主要操作,它與操作數(shù)的具體取值無(wú)關(guān),比如在查找運(yùn)算中,兩個(gè)數(shù)據(jù)的比較就可視為基本操作。顯然,在一個(gè)算法中,執(zhí)行基本運(yùn)算的次數(shù)越少,其運(yùn)行時(shí)間也就相對(duì)地越短;執(zhí)行次數(shù)越多,其運(yùn)行時(shí)間也就相對(duì)地越長(zhǎng)。 ……
圖書(shū)封面
評(píng)論、評(píng)分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版