具体描述
《数据结构(C语言版 第2版)/21世纪高等学校计算机规划教材》在选材与编排上,贴近当前普通高等院校“数据结构”课程的现状和发展趋势,符合最新研究生考试大纲,内容难度适度,突出实用性和应用性。全书共8章,内容包括绪论,线性表,栈和队列,串、数组和广义表,树和二叉树,图,查找和排序。全书采用类C语言作为数据结构和算法的描述语言。
《数据结构(C语言版 第2版)/21世纪高等学校计算机规划教材》可作为普通高等院校计算机和信息技术相关专业“数据结构”课程的教材,也可供从事计算机工程与应用工作的科技工作者参考。
作者简介
严蔚敏,清华大学教授,长期从事数据结构教学和教材建设,和吴伟民合作编著的《数据结构》曾获“第二届普通高等学校优秀教材全国特等奖”和“1996年度国家科学技术进步奖三等奖”,是目前国内数据结构教学领域的经典教材。
目录信息
1.1 数据结构的研究内容
1.2 基本概念和术语
1.2.1 数据、数据元素、数据项和数据对象
1.2.2 数据结构
1.2.3 数据类型和抽象数据类型
1.3 抽象数据类型的表示与实现
1.4 算法和算法分析
1.4.1 算法的定义及特性
1.4.2 评价算法优劣的基本标准
1.4.3 算法的时间复杂度
1.4.4 算法的空间复杂度
1.5 小结
习题
第2章 线性表
2.1 线性表的定义和特点
2.2 案例引入
2.3 线性表的类型定义
2.4 线性表的顺序表示和实现
2.4.1 线性表的顺序存储表示
2.4.2 顺序表中基本操作的实现
2.5 线性表的链式表示和实现
2.5.1 单链表的定义和表示
2.5.2 单链表基本操作的实现
2.5.3 循环链表
2.5.4 双向链表
2.6 顺序表和链表的比较
2.6.1 空间性能的比较
2.6.2 时间性能的比较
2.7 线性表的应用
2.7.1 线性表的合并
2.7.2 有序表的合并
2.8 案例分析与实现
2.9 小结
习题
第3章 栈和队列
3.1 栈和队列的定义和特点
3.1.1 栈的定义和特点
3.1.2 队列的定义和特点
3.2 案例引入
3.3 栈的表示和操作的实现
3.3.1 栈的类型定义
3.3.2 顺序栈的表示和实现
3.3.3 链栈的表示和实现
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.7 小结
习题
第4章 串、数组和广义表
4.1 串的定义
4.2 案例引入
4.3 串的类型定义、存储结构及其运算
4.3.1 串的抽象类型定义
4.3.2 串的存储结构
4.3.3 串的模式匹配算法
4.4 数组
4.4.1 数组的类型定义
4.4.2 数组的顺序存储
4.4.3 特殊矩阵的压缩存储
4.5 广义表
4.5.1 广义表的定义
4.5.2 广义表的存储结构
4.6 案例分析与实现
4.7 小结
习题
第5章 树和二叉树
5.1 树和二叉树的定义
5.1.1 树的定义
5.1.2 树的基本术语
5.1.3 二叉树的定义
5.2 案例引入
5.3 树和二叉树的抽象数据类型定义
5.3.1 树的抽象数据类型定义
5.4 二叉树的性质和存储结构
5.4.1 二叉树的性质
5.4.2 二叉树的存储结构
5.5 遍历二叉树和线索二叉树
5.5.1 遍历二叉树
5.5.2 线索二叉树
5.6 树和森林
5.6.1 树的存储结构
5.6.2 森林与二叉树的转换
5.6.3 树和森林的遍历
5.7 哈夫曼树及其应用
5.7.1 哈夫曼树的基本概念
5.7.2 哈夫曼树的构造算法
5.7.3 哈夫曼编码
5.8 案例分析与实现
5.9 小结
习题
第6章 图
6.1 图的定义和基本术语
6.1.1 图的定义
6.1.2 图的基本术语
6.2 案例引入
6.3 图的类型定义
6.4 图的存储结构
6.4.1 邻接矩阵
6.4.2 邻接表
6.4.3 十字链表
6.4.4 邻接多重表
6.5 图的遍历
6.5.1 深度优先搜索
6.5.2 广度优先搜索
6.6 图的应用
6.6.1 最小生成树
6.6.2 最短路径
6.6.3 拓扑排序
6.6.4 关键路径
6.7 案例分析与实现
6.8 小结
习题
第7章 查找
7.1 查找的基本概念
7.2 线性表的查找
7.2.1 顺序查找
7.2.2 折半查找
7.2.3 分块查找
7.3 树表的查找
7.3.1 二叉排序树
7.3.2 平衡二叉树
7.3.3 B-树
7.3.4 B+树
7.4 散列表的查找
7.4.1 散列表的基本概念
7.4.2 散列函数的构造方法
7.4.3 处理冲突的方法
7.4.4 散列表的查找
7.5 小结
习题
第8章 排序
· · · · · · (收起)
读后感
用户评价
这本书实在是太厚了,拿到手里沉甸甸的,感觉很有分量。我一直对编程很感兴趣,尤其听说C语言是很多底层系统和大型软件的基础,所以就想从最扎实的方面入手。这本书的封面设计朴素大方,一看就是那种学术气息浓厚的教材,让我对内容的深度充满了期待。我特别喜欢这种一本正经的书,虽然可能看起来有点枯燥,但背后一定凝聚了作者多年的心血和智慧。我翻开目录,看到章节的划分很清晰,从最基础的绪论到后面的高级话题,循序渐进,感觉很系统。我平时喜欢边看书边动手敲代码,希望这本书提供的代码示例能够丰富实用,让我能够真正理解并掌握每一个概念。虽然还没有深入阅读,但仅仅是它的体量和严谨的排版,就已经给了我一种“硬核”学习的信号,我准备好迎接挑战了!
这是一本让我又爱又恨的书。爱的是它的内容深度和广度,恨的是它的啃读难度。我一直以为自己对C语言还算熟悉,但读了这本书才发现,原来我对数据结构和算法的理解还停留在比较浅的层面。书中的讲解非常严谨,很多细节都抠得很深,有时候我需要查阅很多资料才能完全理解一个小的概念。我尤其喜欢它在讲解算法时,会给出多种实现方式,并进行比较分析,这让我看到了不同思路的魅力。当然,这种细致也意味着阅读速度会比较慢,我需要花费大量的时间去消化。但每次克服一个难点,我都会有种巨大的成就感,感觉自己的编程能力又提升了一个档次。这本书就像一个严厉的导师,虽然过程充满挑战,但最终收获一定是巨大的。
我是一名计算机科学专业的学生,正在为期末考试和未来的算法竞赛做准备。这本书是我老师推荐的,他说这本书在国内的口碑一直很好,是很多学子的“案头必备”。我拿到书后,第一感觉就是“专业”。它不仅仅是一本讲解C语言实现数据结构的教材,更像是一本关于计算机科学思想的启蒙读物。我被书中的图示和流程图深深吸引,它们将复杂的数据结构和算法可视化,让抽象的概念变得生动起来。我特别欣赏书中对每种数据结构和算法的复杂度分析,这是理解其优劣的关键。虽然有时候读起来会有些吃力,需要反复琢磨,但我知道,这些“卡点”正是提升的关键。我准备好迎接挑战,希望这本书能帮助我打下坚实的基础,在未来的学习和工作中受益。
说实话,我买这本书主要是看中了它“第2版”的字样。意味着它一定经历过市场的检验和读者的反馈,肯定是对第一版做了不少改进和完善。我以前有过买到过时技术书籍的惨痛经历,所以这次选择“新版”多少给了我一些心理安慰。这本书的纸张质量不错,触感很舒服,印刷清晰,字体大小也适中,长时间阅读不容易疲劳。我刚开始看的时候,发现它并没有直接跳到代码,而是先花了大量篇幅讲解抽象的概念和原理,这让我觉得作者很注重基础的巩固。虽然我有些心急想看到代码,但冷静下来想想,如果连原理都没搞懂,光看代码也只是知其然不知其所以然。我喜欢这种慢热型的学习方式,相信等我深入下去,会发现它带来的“厚积薄发”。
我是一个业余的编程爱好者,平时喜欢自己鼓捣一些小项目。我之前看过一些介绍数据结构的视频,感觉很零散,想找一本系统的书籍来学习。这本书是我在网上搜罗了很久才找到的,看评价都很不错,就入手了。这本书的排版非常用心,每一个公式、每一个代码片段都处理得非常清晰。我特别喜欢书中的一些小技巧和陷阱提示,这些都是在实际开发中非常宝贵的经验。虽然有时候书中的数学推导我不太能完全理解,但我会尽量去领会其精髓。我最看重的是它提供的C语言实现,这让我能够亲手验证书中的理论。我希望通过这本书,能够将我的编程技能提升到一个新的水平,写出更优雅、更高效的代码。
晦涩难懂
晦涩难懂
垃圾中的垃圾中的垃圾中的垃圾
对于算法的步骤,写的比较详细,而又不至于啰嗦,阅读节奏正好。(顺便吐槽一下《算法》,写的太啰嗦了)
垃圾中的垃圾中的垃圾中的垃圾