數(shù)據(jù)結(jié)構(gòu)

出版時間:2010-6  出版社:廈門大學(xué)出版社  作者:石曼銀 編  頁數(shù):239  

前言

  “數(shù)據(jù)結(jié)構(gòu)”是計算機(jī)程序設(shè)計的重要理論基礎(chǔ),它不僅是計算機(jī)專業(yè)的核心課程,也是其他理工專業(yè)的熱門選修課。在計算機(jī)的應(yīng)用領(lǐng)域中,數(shù)據(jù)結(jié)構(gòu)有著廣泛的應(yīng)用。  本書是作者根據(jù)自己的教學(xué)經(jīng)驗總結(jié),為高職高專計算機(jī)專業(yè)學(xué)生編寫的教材。作者在教學(xué)過程中發(fā)現(xiàn),大多數(shù)學(xué)生在初學(xué)數(shù)據(jù)結(jié)構(gòu)時,容易誤解算法與程序之間的關(guān)系,經(jīng)常會把書中的算法當(dāng)作程序直接在編譯器上進(jìn)行運行測試。為了解決這個問題,本書采用C語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言,并且對關(guān)鍵的算法都安排了完整的C語言程序供學(xué)生上機(jī)實習(xí)參考,程序均在VC編譯器下編譯運行。書中給出的每一個算法都是完整的,只要添加上主函數(shù),程序即可運行,主函數(shù)的添加可以模仿書中給出的完整程序?! 「呗毟邔n愒盒C嫦驊?yīng)用,注重實踐,本書力求做到選材精練,敘述簡潔,通俗易懂,盡量避免抽象理論的介紹和復(fù)雜公式的推導(dǎo)。對各種數(shù)據(jù)結(jié)構(gòu)均從實際出發(fā),通過對實例的分析,使學(xué)生理解數(shù)據(jù)結(jié)構(gòu)的基本概念?! 】紤]到專升本和其他考試的需要,在每章后面附有適量的習(xí)題。習(xí)題中編排了較多的選擇題和填空題,并配有習(xí)題答案,方便學(xué)生自學(xué)參考?! ”緯卜?章,第1章介紹了數(shù)據(jù)結(jié)構(gòu)的基本概念和算法分析的初步知識;第2章到第5章介紹了線性表、棧和隊列、串、數(shù)組和廣義表等線性結(jié)構(gòu)的基本概念及常用算法的實現(xiàn);第6章和第7章介紹了非線性結(jié)構(gòu)的樹、二叉樹、圖等數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)和不同存儲結(jié)構(gòu)上的一些操作的實現(xiàn);第8章介紹了各種查找表及查找方法;第9章介紹了各種排序算法。本書計劃學(xué)時為80學(xué)時左右,其中上機(jī)實習(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)驗總結(jié),為高職高專計算機(jī)專業(yè)學(xué)生編寫的教材。作者在教學(xué)過程中發(fā)現(xiàn),大多數(shù)學(xué)生在初學(xué)數(shù)據(jù)結(jié)構(gòu)時,容易誤解算法與程序之間的關(guān)系,經(jīng)常會把書中的算法當(dāng)作程序直接在編譯器上進(jìn)行運行測試。為了解決這個問題,《數(shù)據(jù)結(jié)構(gòu)(C語言描述)》采用C語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言,并且對關(guān)鍵的算法都安排了完整的C語言程序供學(xué)生上機(jī)實習(xí)參考,程序均在VC編譯器下編譯運行。書中給出的每一個算法都是完整的,只要添加上主函數(shù),程序即可運行,主函數(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ù)的運算與實現(xiàn)1.4 抽象數(shù)據(jù)類型1.5 算法與算法分析1.5.1 問題、算法和程序1.5.2 算法設(shè)計的要求1.5.3 算法分析本章小結(jié)練習(xí)題第2章 線性表2.1 線性表的基本概念2.1.1 線性表的自然語言定義2.1.2 線性表的ADT定義2.2 線性表的順序存儲結(jié)構(gòu)及其運算2.2.1 順序表的存儲結(jié)構(gòu)2.2.2 順序表的基本操作2.2.3 順序表的特點2.3 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)及其運算2.3.1 單鏈表的存儲結(jié)構(gòu)2.3.2 單鏈表的基本運算2.3.3 循環(huán)鏈表(Circular Linked List)2.3.4 雙向鏈表(Double Linked List)2.3.5 線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的特點2.4 線性表的應(yīng)用舉例2.5 上機(jī)實驗2.5.1 實驗?zāi)康?.5.2 實驗內(nèi)容本章小結(jié)練習(xí)題第3章 棧和隊列3.1 棧的基本概念3.1.1 棧的自然語言定義3.1.2 棧的ADT定義3.2 棧的順序存儲結(jié)構(gòu)及其運算3.2.1 棧的順序存儲結(jié)構(gòu)3.2.2 順序棧的基本操作3.3 棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)及其運算3.3.1 棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)3.3.2 鏈棧的基本操作3.4 棧的應(yīng)用舉例3.5 隊列3.5.1 隊列的自然語言定義3.5.2 隊列的ADT定義3.6 隊列的順序存儲結(jié)構(gòu)及其運算3.6.1 隊列的順序存儲結(jié)構(gòu)3.6.2 循環(huán)隊列3.6.3 循環(huán)隊列的基本操作3.7 隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)及其運算3.7.1 隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)3.7.2 鏈隊列的基本操作3.8 隊列的應(yīng)用舉例3.9 上機(jī)實驗3.9.1 實驗?zāi)康?.9.2 實驗內(nèi)容本章小結(jié)練習(xí)題第4章 串4.1 串的基本概念4.1.1 串的自然語言定義4.1.2 串的ADT定義4.2 串的順序存儲結(jié)構(gòu)及其運算4.2.1 串的順序定長存儲結(jié)構(gòu)4.2.2 順序串的基本操作4.3 串的堆分配存儲結(jié)構(gòu)及其運算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ī)實驗4.6.1 實驗?zāi)康?.6.2 實驗內(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ī)實驗5.4.1 實驗?zāi)康?.4.2 實驗內(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ī)實驗6.6.1 實驗?zāi)康?.6.2 實驗內(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 某個源點到其他各頂點的最短路徑7.5.2 每對頂點之間的最短路徑7.6 有向無環(huán)圖及其應(yīng)用……第8章 查找第9章 排序參考答案參考文獻(xiàn)

章節(jié)摘錄

  數(shù)據(jù)類型是指程序設(shè)計語言中各變量可取的數(shù)據(jù)種類。例如在FORTRAN語言中,變量的數(shù)據(jù)類型有整型、實型和復(fù)數(shù)型;在c語言中,數(shù)據(jù)類型有基本類型和構(gòu)造類型兩種,其中基本類型有整型、浮點型、字符型等,構(gòu)造類型有數(shù)組、結(jié)構(gòu)體、聯(lián)合、指針、枚舉型、自定義等。數(shù)據(jù)類型是高級程序設(shè)計語言中的一個基本概念,它和數(shù)據(jù)結(jié)構(gòu)的概念密切相關(guān)。一方面,在程序設(shè)計語言中,每一個數(shù)據(jù)都屬于某種數(shù)據(jù)類型。類型明顯或隱含地規(guī)定了數(shù)據(jù)的取值范圍、存儲方式以及允許進(jìn)行的運算??梢哉J(rèn)為,數(shù)據(jù)類型是在程序設(shè)計中已經(jīng)實現(xiàn)了的數(shù)據(jù)結(jié)構(gòu)。另一方面,在程序設(shè)計過程中,當(dāng)需要引入某種新的數(shù)據(jù)結(jié)構(gòu)時,總是借助編程語言所提供的數(shù)據(jù)類型來描述數(shù)據(jù)的存儲結(jié)構(gòu)?! ≡诜治鲆恍?fù)雜的情況或處理復(fù)雜的事物時,我們一般采用抽象思維的方法,即舍去復(fù)雜系統(tǒng)中非本質(zhì)的成分,只對其中一些本質(zhì)的可以反映系統(tǒng)重要特性的東西歸納提煉出來,設(shè)計出系統(tǒng)的模型,然后深入研究這些模型,得出一般的規(guī)律性的東西,解決實際問題。這種抽象思維的方法同樣適用于軟件系統(tǒng)的設(shè)計和研究。在復(fù)雜的軟件系統(tǒng)設(shè)計中,對所包括的數(shù)據(jù)和操作進(jìn)行抽象分析,從而更有效地進(jìn)行軟件系統(tǒng)的設(shè)計,將數(shù)據(jù)抽象和運算抽象緊密地結(jié)合在一起就構(gòu)成抽象數(shù)據(jù)類型的概念。  抽象數(shù)據(jù)類型(Abstract Data Type,ADT)是指用以下方式構(gòu)造出來的數(shù)據(jù)類型,定義一個數(shù)據(jù)邏輯模型(數(shù)學(xué)模型),以及定義在該模型上的一組操作。抽象數(shù)據(jù)類型的定義取決于它的一組邏輯特性,與其在計算機(jī)內(nèi)部如何表示和實現(xiàn)無關(guān)。換句話說,不論它的內(nèi)部結(jié)構(gòu)如何變化,只要它的數(shù)學(xué)特性不變,都不影響它的外部使用?! 〕橄髷?shù)據(jù)類型的概念并不是全新的概念,它實際上是我們熟悉的基本數(shù)據(jù)類型概念的引申和發(fā)展。由計算機(jī)高級程序設(shè)計語言可知,基本數(shù)據(jù)類型已隱含著數(shù)據(jù)模型和定義在該模型上的運算的統(tǒng)一,只是沒有形成抽象數(shù)據(jù)類型的概念而已。如整型就是整數(shù)值模型與加、減、乘、除、取模等幾種運算的統(tǒng)一體。

圖書封面

評論、評分、閱讀與下載


    數(shù)據(jù)結(jié)構(gòu) PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7