| 图书基本信息 | |||
| 图书名称 | 数据结构教程(第3版) | 作者 | 唐发根 |
| 定价 | 56.00元 | 出版社 | 北京航空航天大学出版社 |
| ISBN | 9787512424326 | 出版日期 | 2017-07-01 |
| 字数 | 页码 | ||
| 版次 | 1 | 装帧 | 平装-胶订 |
| 开本 | 16开 | 商品重量 | 0.4Kg |
| 内容简介 | |
| 唐发根编*的这本《数据结构教程(第3版)》 是第2版的修订版。修订版继续保持了第2版的基本框 架和表达风格,对其中部分内容做了增删与补充,尤 其是增加了大量的习题和解答。 书中按照“数据结构”课程教学大纲系统地讨论 了数据的各种逻辑结构、存储结构以及在这些结构的 基础上对数据所实施的操作。全书仍然分为11章。 本书不仅可以作为高等学校计算机专业和其他相 关专业本科学生的学习用书,也可以作为计算机软件 开发人员的参考资料,*是报考高等院校计算机专业 硕士研究生的考生考前重要的复习资料。 |
| 作者简介 | |
| 目录 | |
| 章 绪论 1.1 什么是数据结构 1.2 数据结构的发展简史及其在计算机科学中的地位 1.3 算法 1.3.1 算法及其性质 1.3.2 基本算法 1.3.3 算法的描述 1.4 算法分析 1.4.1 时间复杂度 1.4.2 空间复杂度 1.4.3 其他方面 习题第2章 线性表 2.1 线性表的定义及其基本操作 2.1.1 线性表的定义 2.1.2 线性表的基本操作 2.2 线性表的顺序存储结构 2.2.1 顺序存储结构的构造 2.2.2 几种常见操作的实现 2.2.3 顺序存储结构小结 2.3 线性链表及其操作 2.3.1 线性链表的构造 2.3.2 线性链表的基本算法 2.4 循环链表及其操作 2.5 双向链表及其操作 2.5.1 双向链表的构造 2.5.2 双向链表的插入与删除算法 2.6 链表的应用举例 2.6.1 链式存储结构下的一元多项式相加 2.6.2 打印文本文件的后n行 习题第3章 数组 3.1 数组的概念 3.2 数组的存储结构 3.3 矩阵的压缩存储 3.3.1 对称矩阵的压缩存储 3.3.2 对角矩阵的压缩存储 3.4 稀疏矩阵的三元组表表示 3.4.1 稀疏矩阵的三元组表存储方法 3.4.2 稀疏矩阵的转置算法 3.4.3 稀疏矩阵的相加算法 3.4.4 稀疏矩阵的相乘算法 3.5 稀疏矩阵的链表表示 3.5.1 线性链表存储方法 3.5.2 带行指针向量的链表存储方法 3.5.3 十字链表存储方法 3.6 数组的应用举例 3.6.1 一元多项式的数组表示 3.6.2 n阶魔方 习题第4章 堆栈和队列 4.1 堆栈的概念及其操作 4.1.1 堆栈的定义 4.1.2 堆栈的基本操作 4.2 堆栈的顺序存储结构 4.2.1 顺序堆栈的构造 4.2.2 顺序堆栈的基本算法 4.2.3 多个堆栈共享连续空间 4.3 堆栈的链式存储结构 4.3.1 链接堆栈的构造 4.3.2 链接堆栈的基本算法 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.6.1 顺序队列的构造 4.6.2 顺序队列的基本算法 4.6.3 循环队列 4.7 队列的链式存储结构 4.7.1 链接队列的构造 4.7.2 链接队列的基本算法 习题第5章 广义表 5.1 广义表的基本概念 5.2 广义表的存储结构 5.3 多元多项式的表示 习题第6章 串 6.1 串的基本概念 6.1.1 串的定义 6.1.2 串的几个概念 6.2 串的基本操作 6.3 串的存储结构 6.3.1 串的顺序存储结构 6.3.2 串的链式存储结构 6.4 串的几个操作 习题第7章 树与二叉树 7.1 树的基本概念 7.1.1 树的定义 7.1.2 树的逻辑表示方法 7.1.3 基本术语 7.1.4 树的性质 7.1.5 树的基本操作 7.2 树的存储结构 7.2.1 多重链表表示法 7.2.2 三重链表表示法 7.3 二叉树 7.3.1 二叉树的定义 7.3.2 二叉树的基本操作 7.3.3 两种特殊形态的二叉树 7.3.4 二叉树的性质 7.3.5 二叉树与树、树林之间的转换 7.4 二叉树的存储结构 7.4.1 二叉树的顺序存储结构 7.4.2 二叉树的链式存储结构 7.5 二叉树与树的遍历 7.5.1 二叉树的遍历 7.5.2 由遍历序列恢复二叉树 7.5.3 二叉树的等价性 7.5.4 树和树林的遍历 7.5.5 基于二叉树遍历操作的算法举例 7.6 线索二叉树 7.6.1 线索二叉树的构造 7.6.2 线索二叉树的利用 7.6.3 二叉树的线索化 7.6.4 线索二叉树的更新 7.7 二叉排序树 7.7.1 二叉排序树的定义 7.7.2 二叉排序树的建立(插入) 7.7.3 在二叉排序树中删除结点 7.7.4 二叉排序树的查找 7.8 平衡二叉树 7.9 哈夫曼树及其应用 7.9.1 哈夫曼树(Huffman)的概念 7.9.2 哈夫曼编码 习题第8章 图 8.1 图的基本概念 8.1.1 图的定义和基本术语 8.1.2 图的基本操作 8.2 图的存储方法 8.2.1 邻接矩阵存储方法 8.2.2 邻接表存储方法 8.2.3 有向图的十字链表存储方法 8.2.4 无向图的多重邻接表存储方法 8.3 图的遍历 8.3.1 深度优先搜索 8.3.2 广度优先搜索 8.3.3 连通分量 8.4 小生成树 8.4.1 普里姆算法 8.4.2 克鲁斯卡尔算法 8.5 短路径 8.6 AOV网与拓扑排序 8.6.1 AOV网 8.6.2 拓扑排序 8.6.3 拓扑排序算法 8.7 AOE网与关键路径 8.7.1 AOE网 8.7.2 关键路径 8.7.3 关键路径的确定 习题第9章 文件及查找 9.1 文件概述 9.1.1 文件的基本概念 9.1.2 文件的存储介质 9.1.3 文件的基本操作 9.2 顺序文件 9.2.1 连续顺序文件及其查找 9.2.2 链接顺序文件及其查找 9.3 索引文件 9.3.1 稠密索引文件 9.3.2 非稠密索引分块文件 9.3.3 多级索引文件 9.4 B-树和B 树 9.4.1 B-树的基本概念 9.4.2 B-树的基本操作 9.4.3 B 树的基本概念 9.4.4 B 树的基本操作 9.5 散列(hash)文件 9.5.1 概述 9.5.2 散列函数的几种常见构造方法 9.5.3 处理冲突的方法 9.5.4 散列文件的操作 9.5.5 散列法的平均查找长度 习题0章 内排序 10.1 概述 10.1.1 排序的基本概念 10.1.2 排序的分类 10.2 插入排序 10.3 选择排序 10.4 泡排序 10.5 谢尔排序 10.6 快速排序 10.7 堆积排序 10.7.1 堆积的定义 10.7.2 堆积排序算法 10.8 二路归并排序 10.8.1 归并子算法 10.8.2 一趟归并扫描子算法 10.8.3 二路归并排序算法 10.9 基数排序 10.10 各种内排序方法的比较 10.10.1 稳定性比较 10.10.2 复杂性比较 习题1章 外排序 11.1 概述 11.2 磁带排序 11.2.1 多路平衡归并排序法 11.2.2 多步归并排序 11.3 初始归并段的合理分布与产生 11.3.1 初始归并段的合理分布 11.3.2 一种产生初始归并段的方法——置换选择排序 11.4 磁盘排序 习题习题答案参考文献 |
| 编辑推荐 | |
| 文摘 | |
| 序言 | |
总而言之,这本书给我的整体感觉是,它是一本非常扎实、严谨,同时又兼顾了学习者体验的优秀教材。从封面设计到内容编排,再到语言风格,都体现了作者在教学方面的深度思考和精益求精的态度。我感觉,作者在编写这本书的时候,不仅仅是在传授知识,更是在引导读者建立起一种科学的思维方式和解决问题的能力。它像是一盏明灯,为我在数据结构的学习道路上指明了方向,并提供了坚实的支撑。我非常庆幸自己能够通过这本书来系统地学习数据结构,我相信它将会为我未来的学习和职业发展打下坚实的基础。这本书不仅仅是一本“书”,更像是一位良师益友,在我的学习之路上给予我持续的启发和帮助。它的价值,远远超出了我对一本教材的最初期待。
评分这本书的语言风格,总体上来说是比较严谨和学术化的,但又不像一些纯粹的理论书籍那样枯燥乏味。作者在表述核心概念时,力求做到准确无误,避免使用模糊不清的词汇。同时,又会巧妙地穿插一些生活化的类比,或者以通俗易懂的方式解释一些复杂的原理,使得整体阅读体验更加平易近人。例如,在解释递归的时候,书中可能并没有直接给出抽象的数学公式,而是通过一个具体的、能够引发读者思考的例子来引入,让读者在潜移默化中理解递归的精髓。这种“润物细无声”的教学方法,比那种“填鸭式”的灌输要有效得多。我特别喜欢那种在讲解完一个重要概念后,作者会进行一个简短的总结,或者提出一些引人深思的问题,鼓励读者去主动思考和探索。这种互动式的设计,让我在阅读过程中不仅仅是一个被动的接收者,更像是一个积极的参与者,不断地与书中的内容进行对话。这种主动学习的模式,能够显著提升学习的效率和深度。
评分我个人认为,一本好的教材,除了扎实的理论知识,还应该能够激发读者的学习兴趣。而这本书,在保持学术严谨性的同时,也努力让学习过程变得更加生动有趣。我虽然无法在此处透露具体内容,但从整体的叙事方式和内容组织来看,它似乎在有意地避免那种枯燥乏味的“填鸭式”教学。作者可能会通过一些引人入胜的引入,或者巧妙地设置一些悬念,来吸引读者的注意力。而且,在讲解一些重要的算法思想时,它可能还会尝试用一些富有启发性的方式来呈现,让读者在潜移默化中领悟到其中的精妙之处。我感觉,这本书在努力地将抽象的概念“具象化”,或者用更易于理解的方式来表达。这种对学习体验的关注,是我非常看重的一点。毕竟,学习是一个需要主动参与的过程,而激发读者的兴趣,是促使他们主动学习的关键。
评分这本书的封面设计,说实话,第一眼看过去并没有给我带来太大的惊艳感。简洁的配色,标准的排版,以及书名醒目的字体,都显得相当“教科书式”。我是一个习惯通过封面来初步感知一本书风格的人,而这本《数据结构教程(第3版)》给我的第一印象是严谨、务实,可能略显保守。但正如我们常说的,“人不可貌相”,一本书更是如此。翻开书页,纸张的触感还算不错,印刷清晰,没有那种劣质纸张的粗糙感,这对于一本需要反复翻阅的教材来说,无疑是一个加分项。字体大小也比较适中,阅读起来不会觉得吃力,也没有那种为了节省空间而过度压缩字号带来的压迫感。整体而言,在硬件条件上,它已经具备了一本合格的教材应有的基本素养。当然,封面和装帧只是阅读体验的开端,真正的内容才是决定一本书价值的核心。我个人对于数据结构的学习一直抱有浓厚的兴趣,尤其是在计算机科学领域,数据结构的重要性不言而喻,它像是搭建复杂程序的基石。我一直相信,一个扎实的数据结构基础,能够极大地提升解决问题的能力和代码的效率。因此,我对于这本教材的内容抱有很高的期待,希望能从中汲取到足够的力量,去应对未来学习和工作中可能遇到的各种技术挑战。
评分阅读这本书,我最大的感受之一就是它在逻辑上的严密性。作者在组织材料时,始终遵循着一种清晰的逻辑脉络。每一个章节的引入,每一个概念的阐述,都仿佛是经过精心设计的,能够自然而然地衔接上一个话题,并为下一个话题打下基础。这种流畅的叙事结构,让我在阅读时不易感到困惑或迷失。它不会出现那种跳跃式的内容编排,或者随意插入一些不相关的知识点。每一个知识点都像是一块精心打磨的积木,安放在最合适的位置,共同搭建起一座坚实的知识大厦。我尤其欣赏的是,作者在解释某个概念的时候,会先从更宏观的视角进行介绍,然后再逐步深入到细节。这种“由大到小”的讲解方式,能够帮助我快速建立起对整个知识体系的整体认知,然后再去关注每一个部分的具体细节。这种严谨的逻辑组织,对于理解抽象的计算机科学概念来说,是至关重要的。它能够帮助我构建起清晰的思维框架,从而更有效地吸收和运用所学知识。
评分从一个读者的角度来看,这本书给我的感觉是,它是一个循序渐进的知识引导者。它不会上来就抛出那些高深的理论,而是从最基础的概念开始,一步一步地引导你去理解。就好像一个经验丰富的老师,他清楚地知道你的起点在哪里,然后为你规划好一条最稳妥的学习路径。在学习过程中,你会感觉每一步都是建立在前面知识的基础上,不会有那种突然“断层”的感觉。作者在组织内容时,非常注重知识点的逻辑关联和递进关系。即使是对于一些相对复杂的概念,它也能够通过巧妙的编排,让你在不知不觉中就掌握了它们。我尤其喜欢这种“温故而知新”的设计,在引入新知识点之前,会适当地回顾和巩固相关的旧知识,从而加深理解。这种细致入微的引导,让我觉得学习过程更加顺畅,也更有成就感。它帮助我构建起了一个完整的知识框架,而不是零散的知识点堆砌。
评分这本书在细节的处理上,可以说做到了精益求精。我注意到,书中对于一些容易混淆的概念,作者都会进行详细的辨析,并且提供非常具体的例子来加以说明。例如,在区分动态数组和静态数组时,它可能不仅会介绍它们的定义,还会深入到内存分配、扩容机制等更底层的细节,并用生动的图示来辅助理解。这种细致入微的处理,对于避免学习过程中的误解和混淆至关重要。我常常觉得,技术学习的难点往往就隐藏在这些细枝末节之中,而一本优秀的教材,就应该能够有效地帮助读者跨越这些障碍。这本书在这方面做得相当出色,它没有敷衍了事,而是用耐心和细致,为读者铺平了前进的道路。我特别欣赏书中对于一些算法优化过程的讲解,它会清晰地展示出不同优化策略带来的性能提升,并分析其背后的原因。这种对细节的关注,不仅提升了内容的严谨性,也为读者提供了更深入的思考角度。
评分在学习过程中,我发现这本书在理论讲解之外,还非常注重实践的指导。虽然我无法在此处详述具体章节内容,但整体而言,它在讲解完某个数据结构或算法后,会适时地给出一些经典的应用场景和伪代码示例。这些示例并不是那种为了“展示”而存在的华而不实的例子,而是能够真正体现该数据结构或算法核心思想,并且具有一定实际参考价值的。对于我这种动手能力较强,喜欢通过实践来巩固知识的学习者来说,这无疑是非常宝贵的。有时,即使理论讲得再透彻,如果不能与实际应用相结合,也很难真正内化为自己的能力。这本书在这方面做得相当不错,它在帮助我们理解抽象概念的同时,也为我们提供了一条通往实际编码的清晰路径。我个人认为,学习数据结构,最终还是要落实到代码的实现上,而这本书提供的这种理论与实践相结合的模式,能够有效地帮助读者跨越从理解到实现的鸿沟。这种循序渐进的引导,让我觉得学习过程更加充实和有成就感。
评分初次接触这本书,我的直观感受是,它不像某些网红书籍那样,试图用华丽的语言和“炫技”的案例来吸引读者。这本书呈现出一种沉静而有条理的叙述风格,就如同一个经验丰富的老师,循序渐进地引导你走进数据结构的世界。它没有上来就抛出那些晦涩难懂的概念,而是从最基础的逻辑和定义入手,层层递进。例如,在讲解数组和链表时,作者并没有仅仅停留在它们的定义和基本操作上,而是深入地探讨了它们各自的优缺点,以及在不同场景下的适用性。这种“知其然,更知其所以然”的讲解方式,对于初学者来说尤为重要,能够帮助我们建立起对数据结构性质的深刻理解,而不是死记硬背。书中对于算法复杂度的分析也十分到位,通过清晰的图示和数学推导,将时间复杂度和空间复杂度的概念讲得明明白白,这对于后续的学习,尤其是进行算法优化时,是至关重要的。我尤其欣赏的是,作者在引入新的数据结构时,往往会先回顾前面相关的知识点,建立起知识之间的内在联系,这使得学习过程更加连贯,不易产生知识断层。这种编排方式,充分体现了作者在教学上的用心良苦,旨在帮助读者构建一个全面而系统的知识体系。
评分在内容深度方面,这本书给我留下了深刻的印象。它并没有仅仅停留在对数据结构和算法的表面介绍,而是对核心概念进行了深入的剖析。我感觉,作者在讲解每一个知识点时,都力求做到“知其然,更知其所以然”。例如,在讲解某个算法的时候,它不仅会给出实现思路,还会详细分析其时间复杂度和空间复杂度,并探讨其最优解和可能的优化方向。这种深度分析,对于真正掌握数据结构精髓至关重要。我尤其欣赏的是,书中对于一些关键的算法思想,都进行了充分的展开和论述,而不是简单地一笔带过。它能够帮助我理解这些算法背后的设计哲学,从而举一反三,触类旁通。这种对深度的不懈追求,使得这本书不仅仅是一本入门教材,更是一本能够帮助读者深入理解计算机科学核心原理的参考书。它让我看到了数据结构和算法背后蕴含的强大逻辑和智慧。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有