本書是經典數據結構教材的全新版本,國內外大多數的同類教材都是以本書為藍本編寫而來的。
本書用C作為描述語言,全麵而生動地介紹瞭數據結構的有關知識,如數組、棧、隊列、鏈錶、樹和圖,以及構成所有軟件基礎的排序散列技術。此外,本書還介紹瞭各種高級或特殊數據結構,如優先級隊列、高效二叉查找樹、多路查找樹等。本書對大多數算法都給齣瞭計算時間在很優、很差情形下的復雜度分析。
本書不僅可以作為計算機及相關專業本科生“數據結構”課程的教材,也可以作為研究生一學年的“高等數據結構”課程的教材,同時,本書所介紹的各種算法的C語言實現,對有關專業人員也具有很好的參考價值。
Ellis Horowitz,是南加州大學計算機與電子工程係的教授。Horowitz博士已編著瞭10多本教材,並發錶瞭大量學術論文。
Sartaj Sahni是佛羅裏達大學計算機與信息科學係的傑齣教授和講座教授。Sahni博士已發錶300多篇學術研究論文,編著瞭15本教材。
Susan Anderson-Freed是伊利諾伊衛斯理大學計算機教授。她的研究領域是數據庫管理係統、Web設計與開發。她畢業於諾伯特大學,並在印第安納大學獲得碩士和博士學位,以及在Bradley大學獲得計算機理學地碩士學位。她從1977年起就供職於伊利諾伊衛斯理大學。
第1章 基本概念
1.1 概觀:係統生命周期
1.2 指針和動態存儲分配
1.2.1 指針
1.2.2 動態存儲分配
1.2.3 指針隱患
1.3 算法形式規範
1.3.1 綜論
1.3.2 遞歸算法
1.4 數據抽象
1.5 性能分析
1.5.1 空間復雜度
1.5.2 時間復雜度
1.5.3 漸近記號(O,Q,)
1.5.4 實際復雜度
1.6 性能度量
1.6.1 定時
1.6.2 生成測試數據
1.7 參考文獻和選讀材料
第2章 數組和結構
2.1 數組
2.1.1 數組的抽象數據類型
2.1.2 c語言的數組
2.2 數組的動態存儲分配
2.2.1 一維數組
2.2.2 二維數組
2.3 結構體和聯閤體
2.3.1 結構體
2.3.2 聯閤體
2.3.3 結構的內部實現
2.3.4 自引用結構
2.4 多項式
2.4.1 多項式的抽象數據類型
2.4.2 多項式的錶示
2.4.3 多項式加法
2.5 稀疏矩陣
2.5.1 稀疏矩陣的抽象數據類型
2.5.2 稀疏矩陣的錶示
2.5.3 矩陣轉置
2.5.4 矩陣相乘
2.6 多維數組的錶示
2.7 字符串
2.7.1 字符串的抽象數據類型
2.7.2 C語言的字符串
2.7.3 模式匹配
2.8 參考文獻和選讀材料
2.9 補充習題
第3章 棧與隊列
3.1 棧
3.2 動態棧
3.3 隊列
3.4 動態循環隊列
3.5 迷宮問題
3.6 錶達式求值
3.6.1 錶達式
3.6.2 後綴錶達式求值
3.6.3 中綴錶達式轉換成後綴錶達式
3.7 多重棧與多重隊列
3.8 補充習題
第4章 鏈錶
4.1 單嚮鏈錶
4.2 用C語言錶示單嚮鏈錶
4.3 鏈式棧與鏈式隊列
4.4 多項式
4.4.1 多項式錶示
4.4.2 多項式加法
4.4.3 銷毀多項式
4.4.4 循環鏈錶與多項式
4.4.5 小結
4.5 其它鏈錶操作
4.5.1 單嚮鏈錶操作
4.5.2 循環鏈錶操作
4.6 等價類
4.7 稀疏矩陣
4.7.1 稀疏矩陣錶示
4.7.2 輸入稀疏矩陣
4.7.3 輸齣稀疏矩陣
4.7.4 銷毀稀疏矩陣
4.8 雙嚮鏈錶
第5章 樹
5.1 引論
5.1.1 術語
5.1.2 樹的錶示
5.2 二叉樹
5.2.1 二叉樹的抽象數據類型
5.2.2 二叉樹的性質
5.2.3 二叉樹的錶示
5.3 遍曆二叉樹
5.3.1 中序遍曆
5.3.2 先序遍曆
5.3.3 後序遍曆
5.3.4 非遞歸(循環)中序遍曆
5.3.5 層序遍曆
5.3.6 不設棧遍曆二叉樹
5.4 其它二叉樹操作
5.4.1 復製二叉樹
5.4.2 判斷兩個二叉樹全等
5.4.3 可滿足性問題
5.5 綫索二叉樹
5.5.1 綫索
5.5.2 中序遍曆綫索二叉樹
5.5.3 綫索二叉樹插入結點
5.6 堆
5.6.1 優先級隊列
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 優勝樹
5.8.3 淘汰樹
5.9 森林
5.9.1 森林轉換為二叉樹
5.9.2 遍曆森林
5.10 不相交集閤的錶示
5.10.1 引子
5.10.2 閤並與查找操作
5.10.3 劃分等價類
5.11 二叉樹的計數
5.11.1 不同態二叉樹
5.11.2 棧置換
5.11.3 矩陣乘法
5.11.4 不同二叉樹的數目
5.12 參考文獻和選讀材料
第6章 圖
6.1 圖的抽象數據類型
6.1.1 引子
6.1.2 圖的定義和術語
6.1.3 圖的錶示
6.2 圖的基本操作
6.2.1 深度優先搜索
6.2.2 廣度優先搜索
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 單源點至所有其它節點:邊權值非負
6.4.2 單源點至所有其它節點:邊權值正負無限製
……
第7章 排序
第8章 Hash法
第9章 優先級隊列
第10章 高效二叉查找樹
第11章 多路查找樹
第12章 數字查找結構
索引
《數據結構基礎》是一本優秀的數據結構教材,取材全麵,難易適中,內容組織閤理,詳略得當,深入淺齣,而且論證邏輯性強,所以廣為國內外高校計算機專業選用。此外,這本英文教材對國內許多數據結構教材的編寫也有顯著影響。此中譯本是《數據結構基礎》c語言版第2版的譯本,與第1版相比,新版篇幅擴張很大,內容全麵更新,全書覆蓋①綫性(序)數據類型、②樹型數據類型、③網狀數據類型,以及④排序算法與⑤查找算法。基本數據結構包括綫性錶(數組與鏈錶)、棧與隊列、樹、圖等經典內容,特點為運用抽象數據類型(ADT)觀點一一呈現。另外,書中包含大量符閤ANSIC標準的程序,實例豐富,習題眾多,並有大量圖錶。《數據結構基礎(C語言版)第2版》最鮮明的特點是:用幾乎一半篇幅,即第8~12章,詳細討論瞭各種查找錶結構及其查找算法,而且內容組織很新穎。這最後5章既包括查找法的經典內容,如Hash法和AVL樹等;也包括數據結構研究的新進展,如分攤復雜度分析等;還包括當前數據結構研究的熱點,即各種堆結構。這部分內容特彆適閤數據結構提高課程,也特彆適閤學過基本數據結構的讀者自學提高。以下列齣《數據結構基礎(C語言版)第2版》有關查找的內容及其編排體係。
我是一個比較注重實踐的學習者,所以對書中提供的習題和課後練習相當看重。這本書的習題設計得很有梯度,從最簡單的概念鞏固,到需要綜閤運用多個知識點的復雜問題,應有盡有。我嘗試做瞭一些,發現它們能很好地檢驗我對知識的掌握程度,同時也暴露瞭我一些理解上的盲區。有些習題的答案在書的後麵有提供,這對於我自我檢查非常有幫助。
評分這本書我拿到手已經有一段時間瞭,我一直斷斷續續地在看,想給它一個全麵且客觀的評價,但又覺得好像還有很多細節值得深入挖掘。首先,這本書的齣版質量相當不錯,紙張厚實,印刷清晰,拿在手裏有分量感,不是那種輕飄飄的感覺。封麵設計也比較簡潔大氣,沒有過多花哨的圖案,直接點明瞭主題,讓人一眼就能看齣這是一本嚴肅的學術著作。我尤其喜歡它所采用的C語言作為實現語言,這對於很多計算機專業的學生來說,是最熟悉不過的編程語言瞭,上手也更加容易。
評分這本書的作者在數據結構領域無疑是專傢,他們的知識體係非常紮實,對概念的理解也非常深刻。從他們的筆觸中,我能感受到作者深厚的學術功底和豐富的教學經驗。他們能夠用一種比較係統化的方式來呈現數據結構這個龐大的知識體係,並且將C語言的特性很好地融入到講解和實現中,這使得這本書在同類教材中獨具特色。
評分老實說,這本書的語言風格比較學術化,有些地方的錶述比較嚴謹,甚至有些“咬文嚼字”。這使得它在可讀性方麵,可能不如一些更偏嚮通俗易懂的科普讀物。不過,對於一本嚴謹的計算機科學教材來說,這種風格也是可以理解的,畢竟它需要精確地傳遞知識,避免産生歧義。我個人認為,如果能加入一些更貼近實際應用場景的案例分析,可能會讓學習過程更有趣一些。
評分我對這本書的另一印象深刻的地方是它對算法復雜度的分析。書中對各種數據結構和算法的時間復雜度和空間復雜度都有非常詳細的分析和討論,並且給齣瞭清晰的圖錶和公式推導。這對於我理解算法的效率以及在實際應用中如何選擇最優算法至關重要。雖然有時覺得分析過程有點枯燥,但這種嚴謹的科學態度正是這本教材所傳達的核心價值。
評分這本書的排版和章節組織結構是我非常欣賞的一點。每一章都從一個基本概念講起,然後逐步深入,層層遞進。每講完一個數據結構或算法,都會有相應的C語言代碼示例,並且這些代碼都寫得相當規範,注釋也很詳細,這一點對於我這種喜歡通過代碼來理解抽象概念的人來說,簡直是福音。很多時候,我會在閱讀理論部分的時候,同步對照著代碼去理解,這樣一來,整個學習過程就變得更加生動和有條理。
評分我發現這本書的一個潛在的“缺點”,或者說是一種提醒吧,就是它更適閤那些已經有一定C語言基礎的學習者。如果你是完全的編程新手,可能在理解書中的C語言代碼部分會有些睏難。雖然書中沒有明確要求,但我覺得在閱讀前,對C語言的基礎語法和一些核心概念有所瞭解,會大大提升學習效率。否則,你可能需要在同時閱讀另一本C語言教材。
評分我對這本書的整體評價是,它是一本非常紮實、內容全麵、體係嚴謹的計算機數據結構教材。它可能不是最容易入門的,但絕對是一本能夠讓你深入理解數據結構核心概念的優秀讀物。對於那些想要打下堅實計算機基礎,尤其是從事相關算法開發和研究的學生或開發者來說,這本書絕對是值得擁有的。
評分說實話,這本書的厚度讓我當時有點小小的畏懼,但當我真正沉浸其中開始閱讀時,我發現內容是那樣充實,每一頁都承載著作者的智慧和對知識的耐心講解。雖然有時候需要停下來,反復推敲某個算法的證明過程,或者對著代碼進行調試,但這正是我所期望的深度學習體驗。這本書就像一位經驗豐富的導師,循循善誘,引導我一步步走近數據結構的奧秘。
評分我承認,我一開始被這本書的“精選”和“著名”這兩個詞吸引瞭,總覺得能被選入“世界著名計算機教材精選”係列,質量肯定差不瞭。拿到手後,翻看目錄,確實涵蓋瞭數據結構中幾乎所有核心內容,從最基礎的數組、鏈錶、棧、隊列,到更復雜的樹、圖、排序和查找算法,內容非常全麵。雖然我是帶著期待去看的,但實際閱讀過程中,還是有一些地方讓我感到有些吃力。尤其是一些算法的證明和推導,雖然嚴謹,但對於初學者來說,可能需要反復琢磨纔能完全理解。
評分溫習一下C語言以及數據結構,發貨速度很快,而且質量很好。
評分深度優先搜L索
評分本書M要指導讀者嚮前M邁一大步,大幅度提高編程能力,因為以後編寫的程序,其規模要大很多,功N能也要復雜得多。不用說N,編寫規模龐大而復雜的程O序,不但需要更強有力的工具,還一定需要更高級的編程技術。我們希望在隨後的學習過程,讀者應紮實掌握數據的抽象思維方法,同時必須熟練掌握算法的規範聲明、算法的性能分析、算法的性能評價等諸多技Q能。設置本章的目的就是要詳細論述這些內容。此外,遞歸程序設計方法同樣至關重要,讀者也必須熟練掌握,因此也是本章討論的內容S,但論述得較S為簡明而且篇幅不很大。我們提請讀者注意T,如果讀者以前對遞歸程序T設計基礎未給予足夠重視,瞭解流於膚淺,那麼必須仔細研讀這方麵內容,以後一定會深V感大有益處。然而,在討論各種工具與各項技V術之前,我們必須強凋,編程W可不僅僅是寫程序代碼,即寫完一條條程序語句就萬事大吉瞭。與之截然X相反,優秀的程序員有完全不同的觀點。程序設計的首要問題,應該是首先把大規模程Y序係統分解成許許多多自成體係且相對獨立的組成部件,然後Z再為各部分之間Z存在的相互調用,定義嚴格的調用格式。
評分本書很好的講解瞭數據結構中的基本內容,由淺入深,在此希望廣大程序員們學好數學很重要!
評分定時
評分5.3.5
評分快遞很給力嗎,。。。。。
評分不錯,但是好像書有點受潮,
評分快遞速度很快,內容很不錯
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有