出版時間:2011-1 出版社:清華大學(xué)出版社 作者:楊劍 編 頁數(shù):265
前言
數(shù)據(jù)結(jié)構(gòu)是計算機程序設(shè)計的重要理論技術(shù)基礎(chǔ),它不僅是計算機學(xué)科的核心課程,而且已成為其他理工專業(yè)的熱門選修課。通過數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí),讀者可以運用相關(guān)知識和技能更好地進行算法和程序的設(shè)計,也為后繼課程的學(xué)習(xí)打下良好的基礎(chǔ)。本書是為“數(shù)據(jù)結(jié)構(gòu)”課程編寫的教材,其內(nèi)容選取符合教學(xué)大綱要求,并兼顧學(xué)科的廣度和深度,適用面廣?! ?shù)據(jù)結(jié)構(gòu)課程主要培養(yǎng)以下幾個方面的知識和能力:(1)掌握并能根據(jù)實際問題靈活應(yīng)用基本數(shù)據(jù)結(jié)構(gòu)的抽象數(shù)據(jù)類型、存儲方法和主要算法。(2)掌握基本的算法設(shè)計和分析技術(shù)。(3)掌握并能應(yīng)用常用的排序、查找方法。(4)具備一定的調(diào)試算法和程序、項目測試的能力。顯然,合理地組織數(shù)據(jù),有效地表示數(shù)據(jù)和正確地處理數(shù)據(jù),這三者是提高程序設(shè)計質(zhì)量的關(guān)鍵因素。 本書注意基本概念的引入和闡述,通過實例引入基本概念,然后對主要數(shù)據(jù)結(jié)構(gòu)及其相關(guān)算法分析進行深入比較。本書是作者多年教學(xué)經(jīng)驗的總結(jié),在編寫本書時注意繼承已有教材的優(yōu)點,同時又結(jié)合實際教學(xué)和社會需求進行了大范圍的內(nèi)容更新。數(shù)據(jù)結(jié)構(gòu)是一門理論和實踐結(jié)合比較緊密的課程,本書每一章都設(shè)計有比較新穎的綜合上機實習(xí)題(即實訓(xùn)),因此可以說,這是一本具有嶄新內(nèi)容的教學(xué)用書,它可以作為高等學(xué)校計算機類專業(yè)學(xué)生的教材和參考書,也可作為其他理工類專業(yè)的數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)用書,還可以作為計算機相關(guān)人員的自學(xué)參考書。
內(nèi)容概要
《數(shù)據(jù)結(jié)構(gòu)》是為“數(shù)據(jù)結(jié)構(gòu)”課程編寫的教材,其內(nèi)容選取符合教學(xué)大綱要求,并兼顧學(xué)科的廣度和深度,適用面廣。《數(shù)據(jù)結(jié)構(gòu)》共分為9章,全面系統(tǒng)地介紹線性表、隊列、堆棧、樹、圖等基本數(shù)據(jù)結(jié)構(gòu),以及這些數(shù)據(jù)結(jié)構(gòu)在計算機中的存儲及算法實現(xiàn),介紹各種查找及排序算法的實現(xiàn)和效率分析,最后給出了數(shù)據(jù)結(jié)構(gòu)綜合應(yīng)用實例。書中各種算法采用C語言描述。書中每一章除介紹相關(guān)知識點外,還給出了每章教學(xué)的建議課時、總體要求、學(xué)習(xí)重點、習(xí)題和上機實訓(xùn)題目,在最后一章的實習(xí)實訓(xùn)指導(dǎo)中,給出了實訓(xùn)題目、設(shè)計思想和設(shè)計過程,這非常有助于教師的教學(xué)安排以及學(xué)生對重點的掌握,提高其應(yīng)用能力。 《數(shù)據(jù)結(jié)構(gòu)》配有相關(guān)素材,包括各章的程序源代碼、PPT電子教案、習(xí)題答案與解析,可從清華大學(xué)出版社網(wǎng)站下載?! 稊?shù)據(jù)結(jié)構(gòu)》可以作為高等學(xué)校計算機類專業(yè)學(xué)生的教材和參考書,也可作為其他理工類專業(yè)的數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)用書,還可以作為計算機相關(guān)人員的自學(xué)參考書。
書籍目錄
第1章 緒論1.1 數(shù)據(jù)結(jié)構(gòu)的作用和意義1.1.1 數(shù)據(jù)結(jié)構(gòu)的作用1.1.2 數(shù)據(jù)結(jié)構(gòu)的意義1.2 數(shù)據(jù)結(jié)構(gòu)的基本概念1.2.1 基本概念和術(shù)語1.2.2 數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)1.3 數(shù)據(jù)結(jié)構(gòu)的表示1.4 算法和算法分析1.4.1 算法的基本概念1.4.2 算法效率的度量1.4.3 算法效率分析1.5 習(xí)題第2章 線性表2.1 線性表的邏輯結(jié)構(gòu)2.1.1 線性表的概念2.1.2 線性表的基本操作2.1.3 線性表的抽象數(shù)據(jù)類型描述2.2 線性表的順序表示和實現(xiàn)2.2.1 線性表的順序表示2.2.2 順序表的實現(xiàn)2.2.3 順序表的應(yīng)用2.3 線性表的鏈?zhǔn)奖硎竞蛯崿F(xiàn)2.3.1 線性表的鏈?zhǔn)奖硎?.3.2 單鏈表的實現(xiàn)2.3.3 循環(huán)鏈表2.3.4 雙向鏈表2.3.5 鏈表的應(yīng)用2.4 小結(jié)2.4.1 線性表小結(jié)2.4.2 順序表和鏈表的比較2.5 習(xí)題2.6 實訓(xùn)第3章 棧和隊列3.1 棧3.1.1 棧的定義及基本運算3.1.2 順序棧3.1.3 鏈棧3.2 隊列3.2.1 隊列的定義及基本運算3.2.2 順序隊列3.2.3 鏈隊列3.3 棧和隊列的應(yīng)用舉例3.3.1 棧應(yīng)用之一:數(shù)制轉(zhuǎn)換3.3.2 棧應(yīng)用之二:括號匹配3.3.3 棧應(yīng)用之三:表達式求值3.3.4 隊列應(yīng)用之一:模擬服務(wù)臺前的排隊現(xiàn)象問題3.3.5 隊列應(yīng)用之二:模擬打印機緩沖區(qū)3.4 習(xí)題3.5 實訓(xùn)第4章 串、數(shù)組和廣義表4.1 串及其運算4.1.1 串的基本概念4.1.2 串的抽象數(shù)據(jù)類型定義4.2 串的存儲結(jié)構(gòu)4.2.1 順序存儲結(jié)構(gòu)4.2.2 鏈?zhǔn)酱鎯Y(jié)構(gòu)4.3 串運算的實現(xiàn)4.3.1 串的基本運算4.3.2 模式匹配4.4 多維數(shù)組4.5 數(shù)組的順序表示和實現(xiàn)4.6 矩陣的壓縮存儲4.6.1 特殊矩陣4.6.2 稀疏矩陣4.7 廣義表4.7.1 廣義表的邏輯結(jié)構(gòu)4.7.2 廣義表的存儲結(jié)構(gòu)及實現(xiàn)4.8 習(xí)題第5章 樹和二叉樹5.1 樹的定義和基本術(shù)語5.1.1 樹的定義5.1.2 樹的表示方法5.1.3 樹的術(shù)語5.2 二叉樹5.2.1 二叉樹基本概念5.2.2 二叉樹的性質(zhì)5.2.3 二叉樹的存儲結(jié)構(gòu)5.2.4 二叉樹的基本操作及實現(xiàn)5.3 二叉樹遍歷5.3.1 二叉樹遍歷簡介5.3.2 線索二叉樹5.3.3 線索二叉樹的基本操作實現(xiàn)5.4 樹和森林5.4.1 樹的存儲結(jié)構(gòu)5.4.2 樹和森林與二叉樹之間的轉(zhuǎn)換5.4.3 樹和森林遍歷5.5 哈夫曼樹及其應(yīng)用5.5.1 最優(yōu)二叉樹(哈夫曼樹)5.5.2 哈夫曼樹的構(gòu)造算法5.5.3 哈夫曼樹在編碼問題中的應(yīng)用5.6 習(xí)題5.7 實訓(xùn)第6章 圖6.1 概述6.1.1 圖的定義6.1.2 圖的常用術(shù)語及含義6.2 圖的存儲結(jié)構(gòu)6.2.1 鄰接矩陣6.2.2 鄰接表6.3 圖的遍歷6.3.1 深度優(yōu)先搜索6.3.2 廣度優(yōu)先搜索6.4 生成樹和最小生成樹6.4.1 生成樹6.4.2 最小生成樹6.5 圖的應(yīng)用6.5.1 最短路徑6.5.2 拓撲排序6.5.3 關(guān)鍵路徑6.6 習(xí)題6.7 實訓(xùn)第7章 查找7.1 基本概念7.2 靜態(tài)查找表7.2.1 順序查找7.2.2 折半查找7.3 動態(tài)查找表7.3.1 二叉排序樹7.3.2 平衡二叉樹7.3.3 B一樹7.4 哈希表7.4.1 哈希表的概念7.4.2 臺希函數(shù)的構(gòu)建7.4.3 處理沖突7.4.4 哈希表的查找及其分析7.5 習(xí)題7.6 實訓(xùn)第8章排序8.1 基本概念……第9章 實習(xí)實訓(xùn)
章節(jié)摘錄
我們知道,雖然每個人都懂得英語的語法與基本類型,但是對于同樣的題目,每個人寫出的作文,水平卻高低不一。程序設(shè)計也和寫英語作文一樣,雖然程序員都懂得語言的語法與語義,但是對于同樣的問題,不同程序員寫出來的程序不一樣。有的人寫出來的程序效率很高,有的人卻用復(fù)雜的方法來解決一個簡單的問題?! ‘?dāng)然,程序設(shè)計水平的提高僅僅靠看幾本程序設(shè)計書是不行的。只有多思索、多練習(xí),才能提高自己的程序設(shè)計水平;否則,書看得再多,提高也不大。程序設(shè)計水平要想提高,要多看別人寫的程序,多去思考問題。從別人寫的程序中,可以發(fā)現(xiàn)效率更高的解決方法;從思考問題的過程中,可以了解解決問題的方法常常不止一個。運用先前解決問題的經(jīng)驗,來解決更復(fù)雜更深入的問題,是提高程序設(shè)計水平的最有效途徑?! ?shù)據(jù)結(jié)構(gòu)正是前人在思索問題的過程中所想出的解決方法。一般而言,在學(xué)習(xí)程序設(shè)計一段時間后,學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”便能讓你的程序設(shè)計水平上一個臺階。如果只學(xué)會了程序設(shè)計的語法和語義,那么你只能解決程序設(shè)計三分之一的問題,而且運用的方法并不是最有效的。但如果學(xué)會了數(shù)據(jù)結(jié)構(gòu)的概念,就能在程序設(shè)計上,運用最有效的方法來解決絕大多數(shù)的問題?! 皵?shù)據(jù)結(jié)構(gòu)”這門課程的目的有三個。第一個是講授常用的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)形成了程序員基本數(shù)據(jù)結(jié)構(gòu)工具。對于許多常見的問題,這些數(shù)據(jù)結(jié)構(gòu)是理想的選擇。程序員可以直接拿來或經(jīng)過少許的修改就使用,非常方便。第二個是講授常用的算法,這和數(shù)據(jù)結(jié)構(gòu)一樣,是人們在長期實踐過程中的總結(jié),程序員也可以直接拿來或經(jīng)過少許的修改就使用,并且可以通過算法訓(xùn)練來提高程序設(shè)計水平。第三個目的是通過程序設(shè)計的技能訓(xùn)練促進程序員綜合能力的提高。
編輯推薦
教學(xué)目標(biāo)明確,注重理論與實踐的結(jié)合;教學(xué)方法靈活,培養(yǎng)學(xué)生自主學(xué)習(xí)的能力;教學(xué)內(nèi)容先進,強調(diào)計算機在各專業(yè)中的應(yīng)用;教學(xué)模式完善,提供配套的教學(xué)資源解決方案。
圖書封面
評論、評分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu) PDF格式下載