數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)
定 價:49 元
- 作者:朱仲濤
- 出版時間:2009/3/1
- ISBN:9787302186960
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312C
- 頁碼:470
- 紙張:膠版紙
- 版次:2
- 開本:16K
本書是最經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材的最新版本,國內(nèi)外大多數(shù)的同類教材都是以本書為藍本編寫而來的。
本書用C作為描述語言,全面而生動地介紹了數(shù)據(jù)結(jié)構(gòu)的有關(guān)知識,如數(shù)組、棧、隊列、鏈表、樹和圖,以及構(gòu)成所有軟件基礎(chǔ)的排序散列技術(shù)。此外,本書還介紹了各種高級或特殊數(shù)據(jù)結(jié)構(gòu),如優(yōu)先級隊列、高效二叉查找樹、多路查找樹等。本書對大多數(shù)算法都給出了計算時間在最優(yōu)、最差情形下的復(fù)雜度分析。
本書不僅可以作為計算機及相關(guān)專業(yè)本科生“數(shù)據(jù)結(jié)構(gòu)”課程的教材,也可以作為研究生第一學(xué)年的“高等數(shù)據(jù)結(jié)構(gòu)”課程的教材,同時,本書所介紹的各種算法的C語言實現(xiàn),對有關(guān)專業(yè)人員也具有很好的參考價值。
《數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)》是一本優(yōu)秀的數(shù)據(jù)結(jié)構(gòu)教材,取材全面,難易適中,內(nèi)容組織合理,詳略得當(dāng),深入淺出,而且論證邏輯性強,所以廣為國內(nèi)外高校計算機專業(yè)選用。此外,這本英文教材對國內(nèi)許多數(shù)據(jù)結(jié)構(gòu)教材的編寫也有顯著影響。此中譯本是《數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)》c語言版第2版的譯本,與第1版相比,新版篇幅擴張很大,內(nèi)容全面更新,全書覆蓋①線性(序)數(shù)據(jù)類型、②樹型數(shù)據(jù)類型、③網(wǎng)狀數(shù)據(jù)類型,以及④排序算法與⑤查找算法;緮(shù)據(jù)結(jié)構(gòu)包括線性表(數(shù)組與鏈表)、棧與隊列、樹、圖等經(jīng)典內(nèi)容,特點為運用抽象數(shù)據(jù)類型(ADT)觀點一一呈現(xiàn)。另外,書中包含大量符合ANSIC標(biāo)準(zhǔn)的程序,實例豐富,習(xí)題眾多,并有大量圖表!稊(shù)據(jù)結(jié)構(gòu)基礎(chǔ)(C語言版)第2版》最鮮明的特點是:用幾乎一半篇幅,即第8~12章,詳細討論了各種查找表結(jié)構(gòu)及其查找算法,而且內(nèi)容組織很新穎。這最后5章既包括查找法的經(jīng)典內(nèi)容,如Hash法和AVL樹等;也包括數(shù)據(jù)結(jié)構(gòu)研究的新進展,如分?jǐn)倧?fù)雜度分析等;還包括當(dāng)前數(shù)據(jù)結(jié)構(gòu)研究的熱點,即各種堆結(jié)構(gòu)。這部分內(nèi)容特別適合數(shù)據(jù)結(jié)構(gòu)提高課程,也特別適合學(xué)過基本數(shù)據(jù)結(jié)構(gòu)的讀者自學(xué)提高。以下列出《數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)(C語言版)第2版》有關(guān)查找的內(nèi)容及其編排體系。
Ellis Horowitz,是南加州大學(xué)計算機與電子工程系的教授。Horowitz博士已編著了10多本教材,并發(fā)表了大量學(xué)術(shù)論文。
Sartaj Sahni是佛羅里達大學(xué)計算機與信息科學(xué)系的杰出教授和講座教授。Sahni博士已發(fā)表300多篇學(xué)術(shù)研究論文,編著了15本教材。
Susan Anderson-Freed是伊利諾伊衛(wèi)斯理大學(xué)計算機教授。她的研究領(lǐng)域是數(shù)據(jù)庫管理系統(tǒng)、Web設(shè)計與開發(fā)。她畢業(yè)于諾伯特大學(xué),并在印第安納大學(xué)獲得碩士和博士學(xué)位,以及在Bradley大學(xué)獲得計算機理學(xué)地碩士學(xué)位。她從1977年起就供職于伊利諾伊衛(wèi)斯理大學(xué)。
第1章 基本概念
1.1 概觀:系統(tǒng)生命周期
1.2 指針和動態(tài)存儲分配
1.2.1 指針
1.2.2 動態(tài)存儲分配
1.2.3 指針隱患
1.3 算法形式規(guī)范
1.3.1 綜論
1.3.2 遞歸算法
1.4 數(shù)據(jù)抽象
1.5 性能分析
1.5.1 空間復(fù)雜度
1.5.2 時間復(fù)雜度
1.5.3 漸近記號(O,Q,)
1.5.4 實際復(fù)雜度
1.6 性能度量
1.6.1 定時
1.6.2 生成測試數(shù)據(jù)
1.7 參考文獻和選讀材料
第2章 數(shù)組和結(jié)構(gòu)
2.1 數(shù)組
2.1.1 數(shù)組的抽象數(shù)據(jù)類型
2.1.2 c語言的數(shù)組
2.2 數(shù)組的動態(tài)存儲分配
2.2.1 一維數(shù)組
2.2.2 二維數(shù)組
2.3 結(jié)構(gòu)體和聯(lián)合體
2.3.1 結(jié)構(gòu)體
2.3.2 聯(lián)合體
2.3.3 結(jié)構(gòu)的內(nèi)部實現(xiàn)
2.3.4 自引用結(jié)構(gòu)
2.4 多項式
2.4.1 多項式的抽象數(shù)據(jù)類型
2.4.2 多項式的表示
2.4.3 多項式加法
2.5 稀疏矩陣
2.5.1 稀疏矩陣的抽象數(shù)據(jù)類型
2.5.2 稀疏矩陣的表示
2.5.3 矩陣轉(zhuǎn)置
2.5.4 矩陣相乘
2.6 多維數(shù)組的表示
2.7 字符串
2.7.1 字符串的抽象數(shù)據(jù)類型
2.7.2 C語言的字符串
2.7.3 模式匹配
2.8 參考文獻和選讀材料
2.9 補充習(xí)題
第3章 棧與隊列
3.1 棧
3.2 動態(tài)棧
3.3 隊列
3.4 動態(tài)循環(huán)隊列
3.5 迷宮問題
3.6 表達式求值
3.6.1 表達式
3.6.2 后綴表達式求值
3.6.3 中綴表達式轉(zhuǎn)換成后綴表達式
3.7 多重棧與多重隊列
3.8 補充習(xí)題
第4章 鏈表
4.1 單向鏈表
4.2 用C語言表示單向鏈表
4.3 鏈?zhǔn)綏Ec鏈?zhǔn)疥犃?br />
4.4 多項式
4.4.1 多項式表示
4.4.2 多項式加法
4.4.3 銷毀多項式
4.4.4 循環(huán)鏈表與多項式
4.4.5 小結(jié)
4.5 其它鏈表操作
4.5.1 單向鏈表操作
4.5.2 循環(huán)鏈表操作
4.6 等價類
4.7 稀疏矩陣
4.7.1 稀疏矩陣表示
4.7.2 輸入稀疏矩陣
4.7.3 輸出稀疏矩陣
4.7.4 銷毀稀疏矩陣
4.8 雙向鏈表
第5章 樹
5.1 引論
5.1.1 術(shù)語
5.1.2 樹的表示
5.2 二叉樹
5.2.1 二叉樹的抽象數(shù)據(jù)類型
5.2.2 二叉樹的性質(zhì)
5.2.3 二叉樹的表示
5.3 遍歷二叉樹
5.3.1 中序遍歷
5.3.2 先序遍歷
5.3.3 后序遍歷
5.3.4 非遞歸(循環(huán))中序遍歷
5.3.5 層序遍歷
5.3.6 不設(shè)棧遍歷二叉樹
5.4 其它二叉樹操作
5.4.1 復(fù)制二叉樹
5.4.2 判斷兩個二叉樹全等
5.4.3 可滿足性問題
5.5 線索二叉樹
5.5.1 線索
5.5.2 中序遍歷線索二叉樹
5.5.3 線索二叉樹插入結(jié)點
5.6 堆
5.6.1 優(yōu)先級隊列
5.6.2 大根堆定義
5.6.3 大根堆插入操作
5.6.4 大根堆刪除操作
5.7 二叉查找樹
5.7.1 定義
5.7.2 二叉查找樹的查找
5.7.3 二叉查找樹的插入
5.7.4 二叉查找樹的刪除
5.7.5 二叉查找樹的合并與分裂
5.7.6 二叉查找樹的高度
5.8 選拔樹
5.8.1 引子
5.8.2 優(yōu)勝樹
5.8.3 淘汰樹
5.9 森林
5.9.1 森林轉(zhuǎn)換為二叉樹
5.9.2 遍歷森林
5.10 不相交集合的表示
5.10.1 引子
5.10.2 合并與查找操作
5.10.3 劃分等價類
5.11 二叉樹的計數(shù)
5.11.1 不同態(tài)二叉樹
5.11.2 棧置換
5.11.3 矩陣乘法
5.11.4 不同二叉樹的數(shù)目
5.12 參考文獻和選讀材料
第6章 圖
6.1 圖的抽象數(shù)據(jù)類型
6.1.1 引子
6.1.2 圖的定義和術(shù)語
6.1.3 圖的表示
6.2 圖的基本操作
6.2.1 深度優(yōu)先搜索
6.2.2 廣度優(yōu)先搜索
6.2.3 連通分量
6.2.4 生成樹
6.2.5 重連通分量
6.3 最小代價生成樹
6.3.1 Kruskal算法
6.3.2 Prim算法
6.3.3 SoUin算法
6.4 最短路徑和遷移閉包
6.4.1 單源點至所有其它節(jié)點:邊權(quán)值非負
6.4.2 單源點至所有其它節(jié)點:邊權(quán)值正負無限制
……
第7章 排序
第8章 Hash法
第9章 優(yōu)先級隊列
第10章 高效二叉查找樹
第11章 多路查找樹
第12章 數(shù)字查找結(jié)構(gòu)
索引
第1章 基本概念
1.1 概觀:系統(tǒng)生命周期
本書讀者應(yīng)具備扎實的結(jié)構(gòu)化程序設(shè)計技能。要獲得這些技能,讀者通常應(yīng)學(xué)過程序設(shè)計基礎(chǔ)一類課程。這類課程的培養(yǎng)目標(biāo)就是傳授結(jié)構(gòu)化程序設(shè)計技能,但課程強調(diào)的是語言本身的語法形式與語句使用規(guī)則,學(xué)生在這個階段通常只能編寫很簡單的程序,解決的問題不用說也是很簡單的。這類簡單問題,一般而言,只要直接選用程序設(shè)計語言提供的某語句也許就能完成求解,例如,用數(shù)組存儲數(shù)據(jù),再利用while循環(huán)語句,可能就足以解決這一階段的許多問題了。
本書要指導(dǎo)讀者向前邁一大步,大幅度提高編程能力,因為以后編寫的程序,其規(guī)模要大很多,功能也要復(fù)雜得多。不用說,編寫規(guī)模龐大而復(fù)雜的程序,不但需要更強有力的工具,還一定需要更高級的編程技術(shù)。我們希望在隨后的學(xué)習(xí)過程,讀者應(yīng)扎實掌握數(shù)據(jù)的抽象思維方法,同時必須熟練掌握算法的規(guī)范聲明、算法的性能分析、算法的性能評價等諸多技能。設(shè)置本章的目的就是要詳細論述這些內(nèi)容。此外,遞歸程序設(shè)計方法同樣至關(guān)重要,讀者也必須熟練掌握,因此也是本章討論的內(nèi)容,但論述得較為簡明而且篇幅不很大。