出版時(shí)間:2010-6 出版社:廈門大學(xué)出版社 作者:石曼銀 編 頁(yè)數(shù):239
前言
“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)程序設(shè)計(jì)的重要理論基礎(chǔ),它不僅是計(jì)算機(jī)專業(yè)的核心課程,也是其他理工專業(yè)的熱門選修課。在計(jì)算機(jī)的應(yīng)用領(lǐng)域中,數(shù)據(jù)結(jié)構(gòu)有著廣泛的應(yīng)用?! ”緯?shū)是作者根據(jù)自己的教學(xué)經(jīng)驗(yàn)總結(jié),為高職高專計(jì)算機(jī)專業(yè)學(xué)生編寫的教材。作者在教學(xué)過(guò)程中發(fā)現(xiàn),大多數(shù)學(xué)生在初學(xué)數(shù)據(jù)結(jié)構(gòu)時(shí),容易誤解算法與程序之間的關(guān)系,經(jīng)常會(huì)把書(shū)中的算法當(dāng)作程序直接在編譯器上進(jìn)行運(yùn)行測(cè)試。為了解決這個(gè)問(wèn)題,本書(shū)采用C語(yǔ)言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語(yǔ)言,并且對(duì)關(guān)鍵的算法都安排了完整的C語(yǔ)言程序供學(xué)生上機(jī)實(shí)習(xí)參考,程序均在VC編譯器下編譯運(yùn)行。書(shū)中給出的每一個(gè)算法都是完整的,只要添加上主函數(shù),程序即可運(yùn)行,主函數(shù)的添加可以模仿書(shū)中給出的完整程序?! 「呗毟邔n愒盒C嫦驊?yīng)用,注重實(shí)踐,本書(shū)力求做到選材精練,敘述簡(jiǎn)潔,通俗易懂,盡量避免抽象理論的介紹和復(fù)雜公式的推導(dǎo)。對(duì)各種數(shù)據(jù)結(jié)構(gòu)均從實(shí)際出發(fā),通過(guò)對(duì)實(shí)例的分析,使學(xué)生理解數(shù)據(jù)結(jié)構(gòu)的基本概念?! 】紤]到專升本和其他考試的需要,在每章后面附有適量的習(xí)題。習(xí)題中編排了較多的選擇題和填空題,并配有習(xí)題答案,方便學(xué)生自學(xué)參考。 本書(shū)共分9章,第1章介紹了數(shù)據(jù)結(jié)構(gòu)的基本概念和算法分析的初步知識(shí);第2章到第5章介紹了線性表、棧和隊(duì)列、串、數(shù)組和廣義表等線性結(jié)構(gòu)的基本概念及常用算法的實(shí)現(xiàn);第6章和第7章介紹了非線性結(jié)構(gòu)的樹(shù)、二叉樹(shù)、圖等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)和不同存儲(chǔ)結(jié)構(gòu)上的一些操作的實(shí)現(xiàn);第8章介紹了各種查找表及查找方法;第9章介紹了各種排序算法。本書(shū)計(jì)劃學(xué)時(shí)為80學(xué)時(shí)左右,其中上機(jī)實(shí)習(xí)為35學(xué)時(shí)左右?! ”緯?shū)第1、5、6、7章由石曼銀編寫,第2、3、4章由張啟寧編寫,第8、9章由李志亮編寫,全書(shū)由石曼銀統(tǒng)一編排定稿。
內(nèi)容概要
數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言描述)》是作者根據(jù)自己的教學(xué)經(jīng)驗(yàn)總結(jié),為高職高專計(jì)算機(jī)專業(yè)學(xué)生編寫的教材。作者在教學(xué)過(guò)程中發(fā)現(xiàn),大多數(shù)學(xué)生在初學(xué)數(shù)據(jù)結(jié)構(gòu)時(shí),容易誤解算法與程序之間的關(guān)系,經(jīng)常會(huì)把書(shū)中的算法當(dāng)作程序直接在編譯器上進(jìn)行運(yùn)行測(cè)試。為了解決這個(gè)問(wèn)題,《數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言描述)》采用C語(yǔ)言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語(yǔ)言,并且對(duì)關(guān)鍵的算法都安排了完整的C語(yǔ)言程序供學(xué)生上機(jī)實(shí)習(xí)參考,程序均在VC編譯器下編譯運(yùn)行。書(shū)中給出的每一個(gè)算法都是完整的,只要添加上主函數(shù),程序即可運(yùn)行,主函數(shù)的添加可以模仿書(shū)中給出的完整程序。
書(shū)籍目錄
前言第1章 緒論1.1 什么是數(shù)據(jù)結(jié)構(gòu)1.2 數(shù)據(jù)結(jié)構(gòu)的重要性1.3 基本概念和術(shù)語(yǔ)1.3.1 基本術(shù)語(yǔ)1.3.2 數(shù)據(jù)的邏輯結(jié)構(gòu)1.3.3 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)1.3.4 數(shù)據(jù)的運(yùn)算與實(shí)現(xiàn)1.4 抽象數(shù)據(jù)類型1.5 算法與算法分析1.5.1 問(wèn)題、算法和程序1.5.2 算法設(shè)計(jì)的要求1.5.3 算法分析本章小結(jié)練習(xí)題第2章 線性表2.1 線性表的基本概念2.1.1 線性表的自然語(yǔ)言定義2.1.2 線性表的ADT定義2.2 線性表的順序存儲(chǔ)結(jié)構(gòu)及其運(yùn)算2.2.1 順序表的存儲(chǔ)結(jié)構(gòu)2.2.2 順序表的基本操作2.2.3 順序表的特點(diǎn)2.3 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及其運(yùn)算2.3.1 單鏈表的存儲(chǔ)結(jié)構(gòu)2.3.2 單鏈表的基本運(yùn)算2.3.3 循環(huán)鏈表(Circular Linked List)2.3.4 雙向鏈表(Double Linked List)2.3.5 線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)2.4 線性表的應(yīng)用舉例2.5 上機(jī)實(shí)驗(yàn)2.5.1 實(shí)驗(yàn)?zāi)康?.5.2 實(shí)驗(yàn)內(nèi)容本章小結(jié)練習(xí)題第3章 棧和隊(duì)列3.1 棧的基本概念3.1.1 棧的自然語(yǔ)言定義3.1.2 棧的ADT定義3.2 棧的順序存儲(chǔ)結(jié)構(gòu)及其運(yùn)算3.2.1 棧的順序存儲(chǔ)結(jié)構(gòu)3.2.2 順序棧的基本操作3.3 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及其運(yùn)算3.3.1 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)3.3.2 鏈棧的基本操作3.4 棧的應(yīng)用舉例3.5 隊(duì)列3.5.1 隊(duì)列的自然語(yǔ)言定義3.5.2 隊(duì)列的ADT定義3.6 隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其運(yùn)算3.6.1 隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)3.6.2 循環(huán)隊(duì)列3.6.3 循環(huán)隊(duì)列的基本操作3.7 隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及其運(yùn)算3.7.1 隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)3.7.2 鏈隊(duì)列的基本操作3.8 隊(duì)列的應(yīng)用舉例3.9 上機(jī)實(shí)驗(yàn)3.9.1 實(shí)驗(yàn)?zāi)康?.9.2 實(shí)驗(yàn)內(nèi)容本章小結(jié)練習(xí)題第4章 串4.1 串的基本概念4.1.1 串的自然語(yǔ)言定義4.1.2 串的ADT定義4.2 串的順序存儲(chǔ)結(jié)構(gòu)及其運(yùn)算4.2.1 串的順序定長(zhǎng)存儲(chǔ)結(jié)構(gòu)4.2.2 順序串的基本操作4.3 串的堆分配存儲(chǔ)結(jié)構(gòu)及其運(yùn)算4.3.1 串的堆分配存儲(chǔ)結(jié)構(gòu)4.3.2 串的堆分配存儲(chǔ)結(jié)構(gòu)的基本操作4.4 串的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)4.5 串的應(yīng)用舉例4.6 上機(jī)實(shí)驗(yàn)4.6.1 實(shí)驗(yàn)?zāi)康?.6.2 實(shí)驗(yàn)內(nèi)容本章小結(jié)練習(xí)題第5章 數(shù)組和廣義表5.1 數(shù)組的定義與存儲(chǔ)5.1.1 數(shù)組的定義5.1.2 數(shù)組的順序存儲(chǔ)結(jié)構(gòu)5.2 矩陣的壓縮存儲(chǔ)5.2.1 特殊矩陣5.2.2 稀疏矩陣5.3 廣義表5.3.1 廣義表的定義5.3.2 廣義表的基本操作5.3.3 廣義表的存儲(chǔ)結(jié)構(gòu)5.4 上機(jī)實(shí)驗(yàn)5.4.1 實(shí)驗(yàn)?zāi)康?.4.2 實(shí)驗(yàn)內(nèi)容本章小結(jié)練習(xí)題第6章 樹(shù)6.1 樹(shù)的基本概念6.1.1 樹(shù)的自然語(yǔ)言定義6.1.2 樹(shù)的ADT定義6.1.3 樹(shù)的表示方法6.1.4 樹(shù)的基本術(shù)語(yǔ)6.2 樹(shù)的存儲(chǔ)結(jié)構(gòu)6.2.1 樹(shù)的順序存儲(chǔ)結(jié)構(gòu)6.2.2 樹(shù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)6.3 二叉樹(shù)6.3.二叉樹(shù)的定義6.3.2 二叉樹(shù)的性質(zhì)6.3.3 二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)6.3.4 二叉樹(shù)的遍歷6.3.5 線索二叉樹(shù)6.3.6 二叉樹(shù)的應(yīng)用6.4 樹(shù)、森林與二叉樹(shù)之間的轉(zhuǎn)換6.4.1 樹(shù)、森林轉(zhuǎn)換為二叉樹(shù)6.4.2 二叉樹(shù)轉(zhuǎn)換為樹(shù)、森林6.4.3 樹(shù)和森林的遍歷6.5 哈夫曼樹(shù)6.5.1 哈夫曼樹(shù)的基本概念6.5.2 構(gòu)造哈夫曼樹(shù)6.5.3 哈夫曼樹(shù)的應(yīng)用6.6 上機(jī)實(shí)驗(yàn)6.6.1 實(shí)驗(yàn)?zāi)康?.6.2 實(shí)驗(yàn)內(nèi)容本章小結(jié)練習(xí)題第7章 圖7.1 圖的基本概念7.1.1 圖的定義7.1.2 圖的基本術(shù)語(yǔ)7.2 圖的存儲(chǔ)結(jié)構(gòu)7.2.1 鄰接矩陣7.2.2 接表7.3 圖的遍歷7.3.1 深度優(yōu)先搜索遍歷7.3.2 廣度優(yōu)先搜索遍歷7.4 最小生成樹(shù)7.4.1 生成樹(shù)7.4.2 最小生成樹(shù)7.5 最短路徑7.5.1 某個(gè)源點(diǎn)到其他各頂點(diǎn)的最短路徑7.5.2 每對(duì)頂點(diǎn)之間的最短路徑7.6 有向無(wú)環(huán)圖及其應(yīng)用……第8章 查找第9章 排序參考答案參考文獻(xiàn)
章節(jié)摘錄
數(shù)據(jù)類型是指程序設(shè)計(jì)語(yǔ)言中各變量可取的數(shù)據(jù)種類。例如在FORTRAN語(yǔ)言中,變量的數(shù)據(jù)類型有整型、實(shí)型和復(fù)數(shù)型;在c語(yǔ)言中,數(shù)據(jù)類型有基本類型和構(gòu)造類型兩種,其中基本類型有整型、浮點(diǎn)型、字符型等,構(gòu)造類型有數(shù)組、結(jié)構(gòu)體、聯(lián)合、指針、枚舉型、自定義等。數(shù)據(jù)類型是高級(jí)程序設(shè)計(jì)語(yǔ)言中的一個(gè)基本概念,它和數(shù)據(jù)結(jié)構(gòu)的概念密切相關(guān)。一方面,在程序設(shè)計(jì)語(yǔ)言中,每一個(gè)數(shù)據(jù)都屬于某種數(shù)據(jù)類型。類型明顯或隱含地規(guī)定了數(shù)據(jù)的取值范圍、存儲(chǔ)方式以及允許進(jìn)行的運(yùn)算??梢哉J(rèn)為,數(shù)據(jù)類型是在程序設(shè)計(jì)中已經(jīng)實(shí)現(xiàn)了的數(shù)據(jù)結(jié)構(gòu)。另一方面,在程序設(shè)計(jì)過(guò)程中,當(dāng)需要引入某種新的數(shù)據(jù)結(jié)構(gòu)時(shí),總是借助編程語(yǔ)言所提供的數(shù)據(jù)類型來(lái)描述數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)?! ≡诜治鲆恍?fù)雜的情況或處理復(fù)雜的事物時(shí),我們一般采用抽象思維的方法,即舍去復(fù)雜系統(tǒng)中非本質(zhì)的成分,只對(duì)其中一些本質(zhì)的可以反映系統(tǒng)重要特性的東西歸納提煉出來(lái),設(shè)計(jì)出系統(tǒng)的模型,然后深入研究這些模型,得出一般的規(guī)律性的東西,解決實(shí)際問(wèn)題。這種抽象思維的方法同樣適用于軟件系統(tǒng)的設(shè)計(jì)和研究。在復(fù)雜的軟件系統(tǒng)設(shè)計(jì)中,對(duì)所包括的數(shù)據(jù)和操作進(jìn)行抽象分析,從而更有效地進(jìn)行軟件系統(tǒng)的設(shè)計(jì),將數(shù)據(jù)抽象和運(yùn)算抽象緊密地結(jié)合在一起就構(gòu)成抽象數(shù)據(jù)類型的概念?! 〕橄髷?shù)據(jù)類型(Abstract Data Type,ADT)是指用以下方式構(gòu)造出來(lái)的數(shù)據(jù)類型,定義一個(gè)數(shù)據(jù)邏輯模型(數(shù)學(xué)模型),以及定義在該模型上的一組操作。抽象數(shù)據(jù)類型的定義取決于它的一組邏輯特性,與其在計(jì)算機(jī)內(nèi)部如何表示和實(shí)現(xiàn)無(wú)關(guān)。換句話說(shuō),不論它的內(nèi)部結(jié)構(gòu)如何變化,只要它的數(shù)學(xué)特性不變,都不影響它的外部使用?! 〕橄髷?shù)據(jù)類型的概念并不是全新的概念,它實(shí)際上是我們熟悉的基本數(shù)據(jù)類型概念的引申和發(fā)展。由計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語(yǔ)言可知,基本數(shù)據(jù)類型已隱含著數(shù)據(jù)模型和定義在該模型上的運(yùn)算的統(tǒng)一,只是沒(méi)有形成抽象數(shù)據(jù)類型的概念而已。如整型就是整數(shù)值模型與加、減、乘、除、取模等幾種運(yùn)算的統(tǒ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ī)版