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