本书是经典数据结构教材的全新版本,国内外大多数的同类教材都是以本书为蓝本编写而来的。
本书用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语言教材。
评分我对这本书的整体评价是,它是一本非常扎实、内容全面、体系严谨的计算机数据结构教材。它可能不是最容易入门的,但绝对是一本能够让你深入理解数据结构核心概念的优秀读物。对于那些想要打下坚实计算机基础,尤其是从事相关算法开发和研究的学生或开发者来说,这本书绝对是值得拥有的。
评分很好的一本数据结构教材
评分5.6
评分书不错 到手略有破损
评分5.11.2
评分挺好的。。。。。。
评分[美]霍罗维兹,等写的的书都写得很好,[]还是朋友推荐我看的,后来就非非常喜欢,他的书了。除了他的书,我和我家小孩还喜欢看郑渊洁、杨红樱、黄晓阳、小桥老树、王永杰、杨其铎、晓玲叮当、方洲,他们的书我觉得都写得很好。世界著名计算机教材精选数据结构基础(语言版)(第2版),很值得看,价格也非常便宜,比实体店买便宜好多还省车费。书的内容直得一读,阅读了一下,写得很好,本书是最经典数据结构教材的最新版本,国内外大多数的同类教材都是以本书为蓝本编写而来的。本书用作为描述语言,全面而生动地介绍了数据结构的有关知识,如数组、栈、队列、链表、树和图,以及构成所有软件基础的排序散列技术。此外,本书还介绍了各种高级或特殊数据结构,如优先级队列、高效二叉查找树、多路查找树等。本书对大多数算法都给出了计算时间在最优、最差情形下的复杂度分析。本书不仅可以作为计算机及相关专业本科生数据结构课程的教材,也可以作为研究生第一学年的高等数据结构课程的教材,同时,本书所介绍的各种算法的语言实现,对有关专业人员也具有很好的参考价值。,内容也很丰富。,一本书多读几次,第1章基本概念1.1概观系统生命周期本书读者应具备扎实的结构化程序设计技能。要获得这些技能,读者通常应学过程序设计基础一类课程。这类课程的培养目标就是传授结构化程序设计技能,但课程强调的是语言本身的语法形式与语句使用规则,学生在这个阶段通常只能编写很简单的程序,解决的问题不用说也是很简单的。这类简单问题,一般而言,只要直接选用程序设计语言提供的某语句也许就能完成求解,例如,用数组存储数据,再利用循环语句,可能就足以解决这一阶段的许多问题了。本书要指导读者向前迈一大步,大幅度提高编程能力,因为以后编写的程序,其规模要大很多,功能也要复杂得多。不用说,编写规模庞大而复杂的程序,不但需要更强有力的工具,还一定需要更高级的编程技术。我们希望在随后的学习过程,读者应扎实掌握数据的抽象思维方法,同时必须熟练掌握算法的规范声明、算法的性能分析、算法的性能评价等诸多技能。设置本章的目的就是要详细论述这些内容。此外,递归程序设计方法同样至关重要,读者也必须熟练掌握,因此也是本章讨论的内容,但论述得较为简明而且篇幅不很大。我们提请读者注意,如果读者以前对递归程序设计基础未给予足够重视,了解流于肤浅,那么必须仔细研读这方面内容,以后一定会深感大有益处。然而,在讨论各种工具与各项技术之前,我们必须强凋,编程可不仅仅是写程序代码,即写完一条条程序语句就万事大吉了。与之截然相反,优秀的程序员有完全不同的观点。程序设计的首要问题,应该是首先把大规模程序系统分解成许许多
评分5.10
评分书里面都是常用的数据结构知识,很适合打基础!
评分。。。。。。。。。。。。。。。。。。很好
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有