数据结构(C语言版)

数据结构(C语言版) pdf epub mobi txt 电子书 下载 2026

出版者:清华大学出版社
作者:严蔚敏
出品人:
页数:335
译者:
出版时间:2012-5
价格:29.00元
装帧:平装
isbn号码:9781302023683
丛书系列:清华大学计算机系列教材
图书标签:
  • 数据结构
  • 计算机
  • C
  • 算法
  • 编程
  • 程序设计
  • 教材
  • 大学教材
  • 数据结构
  • C语言版
  • 算法
  • 编程
  • 计算机科学
  • 结构设计
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参数教材。

本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的各种实现方法及其综合分析比较。其内容和章节编排1992年4月出版的《数据结构》(第二版)基本一致,但在本书中更突出了抽象数据类型的概念。全书采用类C语言作为数据结构和算法的描述语言。

本书概念表述严谨,逻辑推理严密,语言精炼,用词达意,并有配套出版的《数据结构题集》(C语言版),便于教学,又便于自学。

本书后附有光盘。光盘内容可在DOS环境下运行的以类C语言描述的“数据结构算法动态模拟辅助教学软件,以及在Windows环境下运行的以类PASCAL或类C两种语言描述的“数据结构算法动态模拟辅助教学软件”。

本书可作为计算机类专业或信息类相关专业的本科或专科教材,也可供从事计算机工程与应用工作的科技工作者参考。

《精通算法:从基础到高级的解题艺术》 本书并非对特定编程语言实现细节的罗列,而是聚焦于算法本身的思想、原理与设计方法。我们将带领读者踏上一段探索计算思维的旅程,深入理解那些驱动现代软件运行的基石。 核心理念与内容概览: 本书旨在培养读者解决问题的能力,而不仅仅是教授某种工具的使用。我们将从最基础的算法概念出发,逐步深入到更为复杂和高级的主题,通过严谨的数学分析和直观的逻辑推理,揭示算法的内在美。 算法基础: 什么是算法? 我们将从定义出发,阐释算法的本质——一套清晰、有限、可执行的指令集合,用于解决特定问题。我们将探讨算法的特性,如输入、输出、确定性、有限性、有效性等。 算法分析: 理解算法的效率至关重要。本书将详细介绍时间复杂度和空间复杂度的概念,并讲解如何使用大O符号来度量算法的渐进性能。我们将演示分析各种基本操作和数据结构的性能的方法。 递归与分治: 递归是许多强大算法的核心思想。我们将深入剖析递归的原理,学习如何设计和分析递归函数,并通过经典的分治策略(如归并排序、快速排序)来展示其威力。 动态规划: 当问题可以分解为重叠的子问题时,动态规划便成为一种高效的解决方案。本书将引导读者理解动态规划的核心思想——状态定义、状态转移方程,并应用其解决一系列经典问题,如背包问题、最长公共子序列等。 核心算法体系: 排序算法: 除了前面提到的归并排序和快速排序,我们还将深入探讨其他重要的排序算法,如插入排序、选择排序、堆排序,并分析它们的优缺点及适用场景。 搜索算法: 线性搜索、二分搜索等基础搜索算法将是起点,随后我们将探索更复杂的搜索技术,例如广度优先搜索(BFS)和深度优先搜索(DFS),为图和树的遍历奠定基础。 图算法: 图是描述对象间关系的重要模型。本书将系统介绍图的表示方法(邻接矩阵、邻接表),以及一系列核心图算法,包括: 图的遍历: BFS 和 DFS 在图上的应用。 最短路径算法: Dijkstra 算法、Bellman-Ford 算法、Floyd-Warshall 算法,用于寻找图中的起点到终点的最短路径。 最小生成树算法: Prim 算法、Kruskal 算法,用于构建连接所有顶点的成本最低的树。 拓扑排序: 解决有向无环图中任务依赖关系的问题。 树结构与算法: 树是另一种重要的数据结构。我们将深入探讨二叉树、平衡二叉搜索树(如AVL树、红黑树)、B树等,以及相关的遍历、搜索和插入/删除操作。 字符串匹配算法: 朴素匹配算法、KMP算法、Boyer-Moore算法等,用于高效地在文本中查找模式串。 贪心算法: 学习如何通过一系列局部最优选择来达到全局最优解,并通过实例理解其适用条件和局限性。 高级算法与专题: 散列表(哈希表): 深入理解散列函数的原理、冲突解决方法(链地址法、开放地址法),以及散列表在数据存储和检索中的高效性。 优先队列与堆: 探讨堆的结构特性以及如何利用优先队列解决诸如任务调度、Huffman 编码等问题。 NP-完全问题简介: 触及计算理论的前沿,介绍NP-完全问题的概念,以及理解其对解决复杂问题的意义,而非直接提供解决方案。 算法设计模式: 总结和归纳算法设计中常见的模式和思想,帮助读者举一反三,灵活运用。 学习方法与特色: 本书强调理论与实践的结合,虽然不拘泥于特定语言实现,但书中会提供清晰的伪代码来辅助理解算法的逻辑。每章都包含大量的例题和习题,涵盖从概念理解到复杂问题分析的各个层面,鼓励读者动手实践,通过编码实现和测试来加深理解。 目标读者: 本书适合所有希望深入理解计算机科学核心理论的开发者、计算机专业学生、以及对算法设计和分析感兴趣的读者。无论您是初学者还是有一定经验的程序员,本书都将为您提供一个坚实的基础和提升思维能力的阶梯。 掌握这些算法,您将不仅仅是学会编写程序,更是学会如何用更高效、更巧妙的方式解决计算难题,成为一名更具竞争力的软件工程师。

作者简介

严蔚敏 清华大学计算机系教授,长期从事数据结构教学和教材建设,和吴伟民合作编著的《数据结构》曾获“第二届普通高等学校优秀教材全国特等奖”和“1996年度国家科学技术进步奖三等奖”。

吴伟民 广东工业大学计算机学院副教授,硕士生导师。广东省计算机学会图像图形分会秘书长。长期从事数据结构教学和系列教材建设。主要研究领域:数据结构和算法、可是计算、编译和虚拟机技术、智能系统等。和严蔚敏合作编著的《数据结构》曾获“第二届普通高等学校优秀教材全国特等奖”和“1996年度国家科学技术进步奖三等奖”。

目录信息

第1章 绪论
1.1 什么是数据结构
1.2 基本概念和术语
1.3 抽象数据类型的表现与实现
1.4 算法和算法分析
第2章 线性表
2.1 线性表的类型定义
2.2 线性表的顺序表示和实现
2.3 线性表的链式表示和实现
2.4 一元多项式的表示及相加
第3章 栈和队列
3.1 栈
3.2 栈的应有和举例
3.3 栈与递归的实现
3.4 队列
3.5 离散事件模拟
第4章 串
4.1 串类型的定义
4.2 串的表示和实现
4.3 串的模式匹配算法
4.4 串操作应用举例
第5章 数组和广义表
5.1 数组的定义
5.2 数组的顺序表现和实现
5.3 矩阵的压缩存储
5.4 广义表的定义
5.5 广义表的储存结构
5.6 m元多项式的表示
5.7 广义表的递归算法第6章 树和二叉树
6.1 树的定义和基本术语
6.2 二叉树
6.2.1 二叉树的定义
6.2.2 二叉树的性质
6.2.3 二叉树的存储结构
6.3 遍历二叉树和线索二叉树
6.3.1 遍历二叉树
6.3.2 线索二叉树
6.4 树和森林
6.4.1 树的存储结构
6.4.2 森林与二叉树的转换
6.4.3 树和森林的遍历
6.5 树与等价问题
6.6 赫夫曼树及其应用
6.6.1 最优二叉树(赫夫曼树)
6.6.2 赫夫曼编码
6.7 回溯法与树的遍历
6.8 树的计数
第7章 图
7.1 图的定义和术语
7.2 图的存储结构
7.2.1 数组表示法
7.2.2 邻接表
7.2.3 十字链表
7.2.4 邻接多重表
7.3 图的遍历
7.3.1 深度优先搜索
7.3.2 广度优先搜索
7.4 图的连通性问题
7.4.1 无向图的连通分量和生成树
7.4.2 有向图的强连通分量
7.4.3 最小生成树
7.4.4 关节点和重连通分量
7.5 有向无环图及其应用
7.5.1 拓扑排序
7.5.2 关键路径
7.6 最短路径
7.6.1 从某个源点到其余各顶点的最短路径
7.6.2 每一对顶点之间的最短路径
第8章 动态存储管理
8.1 概述
8.2 可利用空间表及分配方法
8.3 边界标识法
8.3.1 可利用空间表的结构
8.3.2 分配算法
8.3.3 回收算法
8.4 伙伴系统
8.4.1 可利用空间表的结构
8.4.2 分配算法
8.4.3 回收算法
8.5 无用单元收集
8.6 存储紧缩
第9章 查找
9.1 静态查找表
9.1.1 顺序表的查找
9.1.2 有序表的查找
9.1.3 静态树表的查找
9.1.4 索引顺序表的查找
9.2 动态查找表
9.2.1 二叉排序树和平衡二叉树
9.2.2 B树和B+树
9.2.3 键树
9.3 哈希表
9.3.1 什么是哈希表
9.3.2 哈希函数的构造方法
9.3.3 处理冲突的方法
9.3.4 哈希表的查找及其分析
第10章 内部排序
10.1 概述
10.2 插入排序
10.2.1 直接插入排序
10.2.2 其他插入排序
10.2.3 希尔排序
10.3 快速排序
10.4 选择排序
10.4.1 简单选择排序
10.4.2 树形选择排序
10.4.3 堆排序
10.5 归并排序
10.6 基数排序
10.6.1 多关键字的排序
10.6.2 链式基数排序
10.7 各种内部排序方法的比较讨论
第11章 外部排序
11.1 外存信息的存取
11.2 外部排序的方法
11.3 多路平衡归并的实现
11.4 置换一选择排序
11.5 最佳归并树
第12章 文件
12.1 有关文件的基本概念
12.2 顺序文件
12.3 索引文件
12.4 ISAM文件和VSAM文件
12.4.1 ISAM文件
12.4.2 VSAM文件
12.5 直接存取文件(散列文件)
12.6 多关键字文件
12.6.1 多重表文件
12.6.2 倒排文件
附录A 名词索引
附录B 函数索引
参考书目
· · · · · · (收起)

读后感

评分

也许很多人都会喷我,说我浮躁什么的,但是我觉得这本书真的不好,也许用来做学术研究可以,但是如果你之前又没怎么了解过算法,对数据结构也不熟悉的话,个人建议:千万别把这本书当做入门书籍。因为这本书太枯燥了,枯燥得就像你在看严蔚敏教授的视频,看一个老太太跟你讲课...  

评分

给个好评。不能让这些乌烟瘴气的热评毁了这本书。在我学这门课的时候,第二节课我问了我老师一个问题:怎么求xxx的时间复杂度,在她给我说了一堆无关的话后,我继续问她,她说她也不会,反正不考。从此我便不听课了,自己看书。过程是痛苦的,因为我看书的速度和老师讲的速度基...  

评分

这本书是许多大学的指定“数据结构”课程教材。上课时没怎么看过,考前仔细翻了两天。刚开始看的时候感觉这本书也没说的那么差劲,看完后发现,也没我一开始想象的那么好。我尝试写一个比较客观中肯的书评。TL;DR: 这本书基本兑现了前言中的承诺,故曰合格有余;但很多地方做得...  

评分

RT 老师说了,这本书很不适合自学。 哎,国内的书算不错的了。 某君 推荐读 算法导论  

评分

晦涩难懂 翻译也很生硬 比如把二叉树那一章的parent翻译成双亲。。这是逗我呢吧,首先parent是指父亲或母亲,复数时才表示双亲;其次二叉树里node的父结点只有一个,你翻译成双亲是闹哪样?怕孩子没妈可怜吗?本着对国内比较权威教材的敬畏读了一下这书,越读越难受,实在受不...  

用户评价

评分

《数据结构(C语言版)》这本书,说实话,从拿到它的时候,我就被封面上那简洁明了的标题吸引了。作为一名正在努力夯实计算机基础的在校学生,数据结构无疑是我学习生涯中一道绕不过去的坎,而C语言又是我目前最熟悉的编程语言,所以这本书简直就像是为我量身定制的。拿到手后,我迫不及待地翻开了第一页。书的排版很清晰,字体大小适中,阅读起来相当舒适。开篇就用生动形象的比喻解释了什么是数据结构,比如将数组比作一排整齐的房间,链表比作一串串起来的珠子,这一下子就打消了我对抽象概念的恐惧感。接着,作者循序渐进地引入了各种基本的数据结构,从线性表到栈,再到队列,每一种结构都配有详细的理论讲解、图示和C语言实现代码。最让我印象深刻的是,作者并没有直接给出枯燥的代码,而是先剖析了每种数据结构的设计思想、操作方法以及它们各自的优缺点,然后再一步步指导读者如何用C语言去实现。而且,书中提供的代码示例都经过了精心设计,逻辑严谨,注释也十分到位,即使是我这种C语言基础还算扎实但接触数据结构不久的学生,也能跟着代码一步步理解其精髓。我特别喜欢书中的习题部分,每一章后面都配有不同难度的题目,有的是要求实现某个功能,有的是让你分析算法的复杂度,还有的则是设计性的问题,这些题目不仅巩固了书本上的知识,更能激发我的思考,让我主动去钻研和探索。

评分

我得说,《数据结构(C语言版)》这本书的价值远不止于“教会”你数据结构本身。它更像是在潜移默化中培养我的“计算思维”。作者在讲解每一种数据结构和算法时,都会反复强调其背后的思想和设计原则。比如,在讨论链表和数组的优缺点时,作者并非简单地罗列操作的开销,而是引导读者思考在不同的场景下,哪种结构更能满足需求,以及为什么。在介绍排序算法时,除了讲各种算法的实现细节,更重要的是对它们的时间复杂度和稳定性进行深入分析,这让我明白,一个好的解决方案不仅仅是能解决问题,更要考虑效率和通用性。书中的一些图示设计得非常精巧,能够直观地展示数据结构的内部变化和算法的执行过程,比如链表的插入和删除,树的遍历,图的搜索等,这些图示极大地辅助了我的理解。我甚至觉得,即使我以后不直接写C语言代码,书中传递的这种分析问题、设计解决方案的思维模式,也会对我在其他编程语言和技术领域的工作产生深远的影响。它让我明白,编程不仅仅是写代码,更是解决问题的艺术,而数据结构和算法就是这门艺术的基石。

评分

关于《数据结构(C语言版)》,我最想强调的是它在实践层面的深度。这本书并非仅仅停留在理论的讲解,而是真正地将理论与实践紧密结合。书中的每一个数据结构,从最基础的顺序表、链表,到稍微复杂一些的栈、队列,再到更高级的树、图,作者都提供了完整的C语言代码实现。而且,这些代码不仅仅是“能跑就行”,而是考虑到了效率和鲁棒性。例如,在实现动态顺序表时,作者不仅讲解了如何动态分配内存,还考虑了扩容时的策略,比如每次扩容多少,以及如何处理内存不足的情况。在介绍图的遍历时,提供了深度优先搜索(DFS)和广度优先搜索(BFS)的两种实现方式,并详细对比了它们的应用场景和时间复杂度。最让我惊喜的是,书中还涉及到了一些经典的应用案例,比如如何用链表实现多项式相加,如何用栈实现表达式求值,甚至还涉及了一些简单的图算法应用,比如最小生成树(Kruskal算法和Prim算法的简单介绍)。这些实践性的例子,让我看到了数据结构在解决实际问题中的强大力量,也让我能够将书本上的知识真正运用到自己的编程项目中去,而不是仅仅停留在“会看懂代码”的阶段。

评分

这本书的阅读体验,对我而言,更多的是一种“豁然开朗”的感觉。我之前尝试过一些其他的数据结构资料,总觉得有些地方解释得不够透彻,或者代码直接给出来,让我一头雾水,不知道这个功能的实现逻辑到底是怎么回事。但《数据结构(C语言版)》在这方面做得非常出色。它采用了“由浅入深、循序渐进”的教学方法,使得学习过程更加平滑。比如说,在介绍树这种结构时,作者并没有立刻抛出二叉树、平衡树这些复杂的概念,而是先从“家谱”这样的生活化场景入手,帮助我们理解树的层级关系和父子节点的概念。然后,再逐步引申到二叉树的定义、遍历方式(前序、中序、后序)以及它们的实现。代码部分,作者非常注重对每一个关键步骤的解释,比如在实现二叉树的插入操作时,他会详细说明如何找到合适的插入位置,如何进行节点的链接,以及在递归调用过程中栈是如何工作的。这种细致入微的讲解,让我能够清晰地看到每一个C语言代码是如何映射到数据结构的操作上的,极大地增强了我的理解和信心。而且,书中提供的例子不仅仅是简单的演示,很多都包含了对算法效率的分析,比如对不同查找算法的时间复杂度进行比较,这让我明白在实际应用中,选择合适的数据结构和算法是多么重要。

评分

从一个初学者的角度来说,《数据结构(C语言版)》的另一个亮点在于其清晰的逻辑和易于理解的表述方式。作者在处理复杂概念时,总能找到恰当的比喻和类比,让原本抽象的知识变得生动有趣。比如,在讲解哈希表时,作者用“查字典”来比喻哈希函数的查找过程,形象地解释了如何通过一个键快速定位到对应的数据。在解释图这种结构时,作者会先从“城市之间的道路网络”或者“社交网络中的好友关系”等生活化的场景入手,帮助读者建立直观的认识,然后再深入到图的表示法(邻接矩阵和邻接表)、图的遍历(DFS和BFS)以及一些基本的图算法。这种由易到难,由具体到抽象的讲解方式,让我能够轻松地跟上作者的思路。而且,书中对每一个算法的解释都非常详尽,不仅仅是给出伪代码,而是用大段的文字描述了算法的每一步执行过程,并详细分析了其时间复杂度和空间复杂度。这对于我这种需要理解算法“为什么这么写”以及“它到底快不快”的学习者来说,帮助巨大。

评分

国内考研指定教材,经典,但有点老,学习数据结构不建议第一本看这个

评分

虽然我现在看不懂.但是我相信之后我需要用到这一部分知识的时候回头看看这一部分内容一定是欣喜若狂的.同下同下.

评分

起码比本科教材好

评分

起码比本科教材好

评分

花了几个月看了一遍,还没有具体实现。很多算法代码写的不容易看懂。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有