本書是經典數據結構教材的全新版本,國內外大多數的同類教材都是以本書為藍本編寫而來的。
本書用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語言的特性很好地融入到講解和實現中,這使得這本書在同類教材中獨具特色。
评分我對這本書的整體評價是,它是一本非常紮實、內容全麵、體係嚴謹的計算機數據結構教材。它可能不是最容易入門的,但絕對是一本能夠讓你深入理解數據結構核心概念的優秀讀物。對於那些想要打下堅實計算機基礎,尤其是從事相關算法開發和研究的學生或開發者來說,這本書絕對是值得擁有的。
评分[美]霍罗维兹,等写的的书都写得很好,[]还是朋友推荐我看的,后来就非非常喜欢,他的书了。除了他的书,我和我家小孩还喜欢看郑渊洁、杨红樱、黄晓阳、小桥老树、王永杰、杨其铎、晓玲叮当、方洲,他们的书我觉得都写得很好。世界著名计算机教材精选数据结构基础(语言版)(第2版),很值得看,价格也非常便宜,比实体店买便宜好多还省车费。书的内容直得一读,阅读了一下,写得很好,本书是最经典数据结构教材的最新版本,国内外大多数的同类教材都是以本书为蓝本编写而来的。本书用作为描述语言,全面而生动地介绍了数据结构的有关知识,如数组、栈、队列、链表、树和图,以及构成所有软件基础的排序散列技术。此外,本书还介绍了各种高级或特殊数据结构,如优先级队列、高效二叉查找树、多路查找树等。本书对大多数算法都给出了计算时间在最优、最差情形下的复杂度分析。本书不仅可以作为计算机及相关专业本科生数据结构课程的教材,也可以作为研究生第一学年的高等数据结构课程的教材,同时,本书所介绍的各种算法的语言实现,对有关专业人员也具有很好的参考价值。,内容也很丰富。,一本书多读几次,第1章基本概念1.1概观系统生命周期本书读者应具备扎实的结构化程序设计技能。要获得这些技能,读者通常应学过程序设计基础一类课程。这类课程的培养目标就是传授结构化程序设计技能,但课程强调的是语言本身的语法形式与语句使用规则,学生在这个阶段通常只能编写很简单的程序,解决的问题不用说也是很简单的。这类简单问题,一般而言,只要直接选用程序设计语言提供的某语句也许就能完成求解,例如,用数组存储数据,再利用循环语句,可能就足以解决这一阶段的许多问题了。本书要指导读者向前迈一大步,大幅度提高编程能力,因为以后编写的程序,其规模要大很多,功能也要复杂得多。不用说,编写规模庞大而复杂的程序,不但需要更强有力的工具,还一定需要更高级的编程技术。我们希望在随后的学习过程,读者应扎实掌握数据的抽象思维方法,同时必须熟练掌握算法的规范声明、算法的性能分析、算法的性能评价等诸多技能。设置本章的目的就是要详细论述这些内容。此外,递归程序设计方法同样至关重要,读者也必须熟练掌握,因此也是本章讨论的内容,但论述得较为简明而且篇幅不很大。我们提请读者注意,如果读者以前对递归程序设计基础未给予足够重视,了解流于肤浅,那么必须仔细研读这方面内容,以后一定会深感大有益处。然而,在讨论各种工具与各项技术之前,我们必须强凋,编程可不仅仅是写程序代码,即写完一条条程序语句就万事大吉了。与之截然相反,优秀的程序员有完全不同的观点。程序设计的首要问题,应该是首先把大规模程序系统分解成许许多
评分7条
评分(a80%好评)
评分包装和内容都十分不错,发货速度也挺快的!
评分京东自营物流服务很好,商品质量也不错
评分B6.2
评分很好的书,值得看看。帮同学买的。
评分书的质量还行,看完再评价!
评分书的质量都挺不错。优惠活动买的,挺满意!
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2026 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有