出版時間:2008-12 出版社:清華大學(xué)出版社有限公司 作者:楊曉光 頁數(shù):333
Tag標簽:無
前言
數(shù)據(jù)結(jié)構(gòu)是計算機專業(yè)和電子信息專業(yè)的重要專業(yè)基礎(chǔ)課程之一。在計算機課程體系中起到承上啟下的作用,它是操作系統(tǒng)、軟件工程、數(shù)據(jù)庫、編譯原理、計算機圖形學(xué)等課程的基礎(chǔ)。近年來,隨著計算機應(yīng)用領(lǐng)域的不斷拓展,許多非計算機專業(yè)也把數(shù)據(jù)結(jié)構(gòu)作為重要的選修課程之一,以期加強學(xué)生程序設(shè)計能力。 作者在多年的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)實踐中發(fā)現(xiàn),初學(xué)者普遍感覺數(shù)據(jù)結(jié)構(gòu)抽象難懂,對于數(shù)據(jù)結(jié)構(gòu)應(yīng)用于何處、如何應(yīng)用也比較迷茫。作者也一直在思考這個問題,經(jīng)過深入分析以后,感到造成這一現(xiàn)象的原因是,現(xiàn)在的教科書多以抽象理論講解為主,不考慮應(yīng)用,與實際應(yīng)用脫節(jié)。在本書編寫過程中,嘗試引用一些實用案例,這些案例都是我們身邊發(fā)生的事情,既生動有趣,又能詮釋數(shù)據(jù)結(jié)構(gòu)理論,從而變抽象為具體?! 〕酥?,本書還具有以下特色?! ?1)在講解每種新類型時,由一個貼近生活實際的小例子引入,如以奧運會門票預(yù)訂為例引入隊列,先給學(xué)生一個感性認識,然后再過渡到抽象的理論,使學(xué)生易于理解、易于接受?! ?2)在講解各種數(shù)據(jù)結(jié)構(gòu)與算法的同時,給出大量例題。通過例題進一步闡述數(shù)據(jù)結(jié)構(gòu)理論,同時引導(dǎo)學(xué)生靈活運用理論解決問題,從而達到舉一反三的目的?! ?3)在每一章的最后部分提供一個綜合實例,從實用角度詮釋如何用數(shù)據(jù)結(jié)構(gòu)解決現(xiàn)實生活中存在的問題,如用查找和排序生成“十大流行歌手排行榜”。這樣會給學(xué)生以學(xué)以致用的感受,激發(fā)他們的學(xué)習(xí)興趣?! ?4)在每章的最后提供了大量精選習(xí)題。通過這些習(xí)題的訓(xùn)練,可使學(xué)生鞏固所學(xué)知識,進而靈活運用所學(xué)知識?! ?5)每章還提供一至兩個實驗,便于學(xué)生上機練習(xí)。 (6)附錄A給出一個綜合測試,用于檢驗學(xué)習(xí)效果?! ?7)書中所有算法都由C語言實現(xiàn)(均在Visual C++6.O下調(diào)試通過),并有詳盡的注釋,有些還給出測試程序,供學(xué)生驗證和模仿,以加深學(xué)生對算法的理解?! ∪珪卜志耪?。第1章介紹數(shù)據(jù)結(jié)構(gòu)、抽象數(shù)據(jù)類型與算法的一些基本概念;第2章介紹線性表的邏輯結(jié)構(gòu)和兩種存儲結(jié)構(gòu)(順序表和鏈表),以及基本操作的實現(xiàn);第3章介紹棧和隊列,討論棧和隊列特點,相應(yīng)的存儲結(jié)構(gòu)及基本操作的實現(xiàn),給出棧和隊列的一些應(yīng)用實例;第4章介紹串的基本概念、模式匹配算法,討論串的各種存儲結(jié)構(gòu),以及基本操作的實現(xiàn);第5章介紹數(shù)組和廣義表的基本概念,討論數(shù)組和廣義表的存儲結(jié)構(gòu),以及特殊矩陣、稀疏矩陣和廣義表的基本運算;第6章介紹樹與二叉樹,包括樹與二叉樹的定義與表示,討論樹與二叉樹的存儲結(jié)構(gòu),以及樹與二叉樹的遍歷和相互轉(zhuǎn)換;第7章介紹圖,包括圖的基本概念,討論圖的存儲結(jié)構(gòu),以及圖的一些應(yīng)用;第8章介紹各種常見的查找算法及實現(xiàn);第9章介紹各種常見的內(nèi)部排序算法及實現(xiàn);附錄A為綜合測試。
內(nèi)容概要
本書系統(tǒng)介紹了數(shù)據(jù)結(jié)構(gòu)相關(guān)理論和基本算法。主要內(nèi)容包括線性表、棧、隊列、串、數(shù)組、廣義表、樹、二叉樹、圖、查找和排序。 本書從實用角度出發(fā),安排了大量貼近生活的示例,特別是每章都給出一個解決身邊問題的綜合實例。為了幫助讀者更好地理解數(shù)據(jù)結(jié)構(gòu),全書還提供了121道例題,430道習(xí)題,7個綜合實例,13個實驗,1個綜合測試。 本書可作為大專院校計算機專業(yè)和電子信息專業(yè)的本、??茖W(xué)生的教材和參考書,亦適合于工程技術(shù)人員參考。
書籍目錄
第1章 數(shù)據(jù)結(jié)構(gòu)概述 1.1 數(shù)據(jù)結(jié)構(gòu)研究的內(nèi)容 1.2 基本概念和術(shù)語 1.3 抽象數(shù)據(jù)類型 1.4 算法分析 1.4.1 算法及性質(zhì) 1.4.2 算法度量及分析 1.5 習(xí)題 1.6 實驗第2章 線性表 2.1 線性表的定義及其操作 2.1.1 線性表的定義 2.1.2 線性表的抽象數(shù)據(jù)類型 2.2 順序表 2.2.1 順序表的定義 2.2.2 順序表的基本操作 2.3 鏈表 2.3.1 單鏈表 2.3.2 循環(huán)鏈表 2.3.3 雙向鏈表 2.3.4 靜態(tài)鏈表 2.4 順序表與鏈表的比較 2.5 綜合實例——文具店的貨品管理 2.6 習(xí)題 2.7 實驗第3章 棧和隊列 3.1 棧的定義及其操作 3.1.1 棧的定義 3.1.2 棧的抽象數(shù)據(jù)類型 3.2 順序棧 3.2.1 順序棧的定義 3.2.2 順序棧的基本操作 3.3 鏈棧 3.3.1 鏈棧的定義 3.3.2 鏈棧的基本操作 3.4 隊列的定義及其操作 3.4.1 隊列的定義 3.4.2 隊列的抽象數(shù)據(jù)類型 3.5 順序隊列 3.5.1 順序隊列的定義 3.5.2 順序隊列的基本操作 3.6 鏈隊列 3.6.1 鏈隊列的定義 3.6.2 鏈隊列的基本操作 3.7 棧與隊列的應(yīng)用 3.7.1 數(shù)制轉(zhuǎn)換 3.7.2 表達式計算 3.7.3 輸入輸出緩沖區(qū) 3.8 綜合實例——停車場管理 3.9 習(xí)題 3.10 實驗第4章 串 4.1 串的基本概念及其操作 4.1.1 串的基本概念 4.1.2 串的抽象數(shù)據(jù)類型 4.2 串的順序存儲結(jié)構(gòu) 4.2.1 串的定長順序存儲表示 4.2.2 串的堆存儲表示 4.3 串的鏈式存儲結(jié)構(gòu) 4.4 串的模式匹配 4.4.1 Brute—Force算法 4.4.2 KMP算法 4.5 綜合實例——簡易文本編輯軟件 4.6 習(xí)題 4.7 實驗第5章 數(shù)組和廣義表 5.1 數(shù)組的基本概念及其操作 5.1.1 數(shù)組的基本概念 5.1.2 數(shù)組的抽象數(shù)據(jù)類型 5.2 數(shù)組的順序存儲 5.3 特殊矩陣及其壓縮存儲 5.3.1 對稱矩陣與三角矩陣 5.3.2 對角矩陣 5.4 稀疏矩陣 5.4.1 三元組順序表表示 5.4.2 十字鏈表表示 5.5 廣義表 5.5.1 廣義表的基本概念 5.5.2 廣義表的抽象數(shù)據(jù)類型 5.5.3 廣義表的存儲結(jié)構(gòu) 5.6 綜合實例——n階魔方 5.7 習(xí)題 5.8 實驗第6章 樹和二叉樹 6.1 樹 6.1.1 樹的定義 6.1.2 樹的表示方法 6.1.3 樹的抽象數(shù)據(jù)類型 6.1.4樹的存儲結(jié)構(gòu) 6.2 二叉樹 6.2.1 二叉樹的定義 6.2.2 二叉樹的性質(zhì) 6.2.3 二叉樹的存儲結(jié)構(gòu) 6.2.4 二叉樹的遍歷 6.3 線索二叉樹 6.3.1 線索二叉樹的定義 6.3.2 線索二叉樹的操作 6.4 森林 6.4.1 樹、森林與二叉樹的轉(zhuǎn)換 6.4.2 樹和森林的遍歷 6.5 哈夫曼樹及其應(yīng)用 6.5.1 哈夫曼樹 6.5.2 哈夫曼編碼 6.6 綜合實例——高校社團管理 6.7 習(xí)題 6.8 實驗第7章 圖 7.1 圖的基本概念 7.1.1 圖的定義 7.1.2 圖的抽象數(shù)據(jù)類型 7.2 圖的存儲結(jié)構(gòu) 7.2.1 鄰接矩陣 7.2.2 鄰接表 7.2.3 十字鏈表 7.2.4 鄰接多重表 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 拓撲排序和關(guān)鍵路徑 7.6.1 拓撲排序 7.6.2 關(guān)鍵路徑 7.7 綜合實例——故宮導(dǎo)游咨詢 7.8 習(xí)題 7.9 實驗第8章 查找 8.1 查找的基本概念 8.2 順序查找 8.3 折半查找 8.4 分塊查找 8.5 二叉排序樹 8.5.1 二叉排序樹的定義 8.5.2 二叉排序樹的基本操作 8.6 B-樹 8.6.1 B-樹的定義 8.6.2 B-樹的基本操作 8.7 哈希表 8.7.1 哈希表的定義 8.7.2 哈希函數(shù)的構(gòu)造方法 8.7.3 處理沖突的方法 8.7.4 哈希表的基本操作 8.8 綜合實例——十大流行歌手排行榜 8.9 習(xí)題 8.10 實驗第9章 排序 9.1 排序的基本概念 9.2 插入排序 9.2.1 直接插入排序 9.2.2 折半插入排序 9.2.3 希爾排序 9.3 交換排序 9.3.1 冒泡排序 9.3.2 快速排序 9.4 選擇排序 9.4.1 直接選擇排序 9.4.2 堆排序 9.5 歸并排序 9.6 基數(shù)排序 9.7 各種排序方法的比較 9.8 習(xí)題 9.9 實驗附錄A 綜合測試附錄B 部分習(xí)題答案參考文獻
章節(jié)摘錄
第1章 數(shù)據(jù)結(jié)構(gòu)概述 隨著計算機技術(shù)的飛速發(fā)展,以及計算機的日益普及,計算機應(yīng)用的范圍越來越廣泛,從最初的數(shù)值計算,發(fā)展到現(xiàn)在的數(shù)據(jù)處理、自動控制、信息處理、人工智能、情報檢索和辦公自動化等非數(shù)值計算領(lǐng)域。
編輯推薦
本書共分九章。第1章介紹數(shù)據(jù)結(jié)構(gòu)、抽象數(shù)據(jù)類型與算法的一些基本概念;第2章介紹線性表的邏輯結(jié)構(gòu)和兩種存儲結(jié)構(gòu)(順序表和鏈表),以及基本操作的實現(xiàn);第3章介紹棧和隊列,討論棧和隊列特點,相應(yīng)的存儲結(jié)構(gòu)及基本操作的實現(xiàn),給出棧和隊列的一些應(yīng)用實例;第4章介紹串的基本概念、模式匹配算法,討論串的各種存儲結(jié)構(gòu),以及基本操作的實現(xiàn);第5章介紹數(shù)組和廣義表的基本概念,討論數(shù)組和廣義表的存儲結(jié)構(gòu),以及特殊矩陣、稀疏矩陣和廣義表的基本運算;第6章介紹樹與二叉樹,包括樹與二叉樹的定義與表示,討論樹與二叉樹的存儲結(jié)構(gòu),以及樹與二叉樹的遍歷和相互轉(zhuǎn)換;第7章介紹圖,包括圖的基本概念,討論圖的存儲結(jié)構(gòu),以及圖的一些應(yīng)用;第8章介紹各種常見的查找算法及實現(xiàn);第9章介紹各種常見的內(nèi)部排序算法及實現(xiàn);附錄A為綜合測試;附錄B為部分習(xí)題參考答案。為了便于學(xué)生學(xué)習(xí)與理解數(shù)據(jù)結(jié)構(gòu),書中給出121道例題,430道習(xí)題,7個綜合實例,13個實驗,1個綜合測試。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu)實例教程 PDF格式下載