第一图书网

数据结构

朱战立 电子工业出版社
出版时间:

2012-8  

出版社:

电子工业出版社  

作者:

朱战立  

页数:

358  

字数:

588000  

Tag标签:

无  

前言

  数据结构是计算机学科各专业一门重要的专业基础课,也是其他计算机相关专业的一门必修课或选修课。数据结构课程主要讨论现实世界中数据的各种逻辑结构、在计算机中的存储结构以及各种算法的设计问题。数据结构课程的目的,是使学生掌握组织数据、存储数据以及处理数据的基本概念和软件设计的基本方法,从而为进一步学习后续专业课程打下坚实的基础。  本书包含了2009年研究生入学统考大纲的全部内容。本书讨论的典型数据结构问题包括线性表、堆栈、队列、串、数组、递归、广义表、树、二叉树、图、排序、查找、文件等。对于线性表、堆栈、队列、串、数组、广义表、树、二叉树和图等基本数据结构问题,都详细讨论了各自的逻辑结构、存储结构以及各种算法的设计方法。排序和查找是两个应用广泛的算法设计问题,本书讨论了几种典型的排序算法,讨论了静态查找、动态查找和哈希查找的存储结构和查找方法。广义表、树、二叉树和图这些非线性结构的算法经常要设计成递归算法,本书专设一章讨论递归算法的设计方法等问题。  数据结构课程是一门理论和实践结合密切的课程。本书采用理论叙述简洁准确、实践应用举例丰富完整的方法编写。理论采用丰富、完整的设计实例予以说明,设计实例从侧面解释了概念和应用方法,从而达到理论和实践密切结合的教学目的。本书采用c语言描述算法。  本书具有如下特点。  (1)内容丰富,难度适中,文字简洁准确,图文并茂。  (2)本书的所有算法都经上机调试通过,包括各章的操作实现函数、各章的程序设计实例以及习题解答中给出的算法设计。  (3)习题全面,覆盖面广,择要解答。每章最后设计了大量的习题,覆盖了各章的全部教学内容,并在附录B中给出了部分习题解答。  (4)课内上机参考资料丰富。数据结构课程是一门理论结合实践的课程,通常要求包含10多课时的课内上机实习(或称项目设计)。本书各章的习题部分都专门设计了一定数量的上机实习题。另外,附录A还给出了上机实习报告书写规范和一个上机实习报告书写实例,可供学生参考。  本书作者20多年来一直从事数据结构课程的教学工作,曾编著过若干本采用不同算法描述语言的数据结构教材。本书是在经过长期使用的以前出版的教材基础上,参照新的研究生入学统考大纲,通过作者进一步修改、补充和完善而成的。  根据作者的经验,使用本教材授课约需54~80课时,其中包括约10课时的课内上机实习。  使用本书的读者可登录华信教育资源网免费下载教学课件。

内容概要

数据结构是计算机学科各专业的一门重要的专业基础课。本书系统地介绍了各种典型的数据结构,以及递归、查找和排序的方法。本书采用理论叙述简洁准确、实践应用举例丰富完整的方法编写,从而达到理论和实践密切结合的教学目的。本书采用C语言描述算法。
本书内容丰富,难度适中,文字简洁准确,图文并茂,应用实例多,教学参考资料丰富。
本书既可作为计算机本科、专科学生的教材,也可供从事计算机工程和应用工作的科技工作者参考。

书籍目录

第1章 绪论
1.1 数据结构的基本概念
1.1.1 数据、数据元素、数据元素的数据类型
1.1.2 数据的逻辑结构
1.1.3 数据的存储结构
1.1.4 数据的操作
1.1.5 数据结构课程讨论的主要内容
1.2 抽象数据类型
1.3 算法和算法的时间复杂度
1.3.1 算法
1.3.2 算法的性质和设计目标
1.3.3 算法的时间效率分析
1.3.4 算法耗时的实际测试
1.3.5 数据元素个数和时间复杂度
1.4 算法书写规范
习题1
第2章 线性表
2.1 线性表概述
2.1.1 线性表的定义
2.1.2 线性表的抽象数据类型
2.2 线性表的顺序表示和实现
2.2.1 顺序表的存储结构
2.2.2 顺序表操作的实现
2.2.3 顺序表操作的效率分析
2.2.4 顺序表应用举例
2.3 线性表的链式表示和实现
2.3.1 单链表的存储结构
2.3.2 单链表的操作实现
2.3.3 单链表操作的效率分析
2.3.4 单链表应用举例
2.3.5 循环单链表
2.3.6 双向链表
2.4 静态链表
2.5 算法设计举例
2.5.1 顺序表算法设计举例
2.5.2 单链表算法设计举例
习题2
第3章 堆栈和队列
3.1 堆栈
3.1.1 堆栈的基本概念
3.1.2 堆栈的抽象数据类型
3.1.3 堆栈的顺序表示和实现
3.1.4 堆栈的链式表示和实现
3.2 堆栈应用
3.2.1 括号匹配问题
3.2.2 算术表达式计算问题
3.3 队列
3.3.1 队列的基本概念
3.3.2 队列的抽象数据类型
3.3.3 顺序队列以及存在的问题
3.3.4 顺序循环队列的表示和实现
3.3.5 链式队列
3.3.6 队列的应用
3.4 优先级队列
3.4.1 顺序优先级队列的设计和实现
3.4.2 优先级队列的应用
习题3
第4章 串
4.1 串概述
4.1.1 串及其基本概念
4.1.2 串的抽象数据类型
4.1.3 C语言的串函数
4.2 串的存储结构
4.3 串基本操作的实现算法
4.4 串的模式匹配算法
4.4.1 Brute-Force算法
4.4.2 KMP算法
4.4.3 Brute-Force算法和KMP算法的比较
习题4
第5章 数组
5.1 数组概述
5.1.1 数组的定义
5.1.2 数组的实现机制
5.1.3 数组的抽象数据类型
5.2 动态数组
5.2.1 动态数组的设计方法
5.2.2 动态数组和静态数组对比
5.3 特殊矩阵的压缩存储
5.4 稀疏矩阵的压缩存储
5.4.1 稀疏矩阵的三元组顺序表
5.4.2 稀疏矩阵的三元组链表
习题5
第6章 递归算法
6.1 递归的概念
6.2 递归算法的执行过程
6.3 递归算法的设计方法
6.4 递归过程和运行时栈
6.5 递归算法的时间效率分析
6.6 递归算法到非递归算法的转换
6.7 设计举例
6.7.1 一般递归算法设计举例
6.7.2 回溯算法及设计举例
习题6
第7章 广义表
7.1 广义表概述
7.1.1 广义表的概念
7.1.2 广义表的抽象数据类型
7.2 广义表的存储结构
7.2.1 头链和尾链存储结构
7.2.2 原子和子表存储结构
7.3 广义表的操作实现
7.3.1 头链和尾链存储结构下的操作实现
7.3.2 头链和尾链存储结构应用举例
7.3.3 原子和子表存储结构下的操作实现
7.3.4 原子和子表存储结构应用举例
习题7
第8章 树和二叉树
8.1 树
8.1.1 树的定义
8.1.2 树的表示方法
8.1.3 树的抽象数据类型
8.1.4 树的存储结构
8.2 二叉树
8.2.1 二叉树的定义
8.2.2 二叉树的抽象数据类型
8.2.3 二叉树的性质
8.3 二叉树的设计和实现
8.3.1 二叉树的存储结构
8.3.2 二叉树的操作实现
8.4 二叉树遍历
8.4.1 二叉树遍历的方法和结构
8.4.2 二叉链存储结构下二叉树遍历的实现
8.4.3 二叉树遍历的应用
8.4.4 非递归的二叉树遍历算法
8.5 线索二叉树
8.5.1 线索二叉树及其用途
8.5.2 中序线索二叉树的设计
8.5.3 中序线索二叉树循环操作的设计
8.5.4 设计举例
8.6 哈夫曼树
8.6.1 哈夫曼树的基本概念
8.6.2 哈夫曼编码问题
8.6.3 哈夫曼编码问题设计和实现
8.7 等价问题
8.8 树与二叉树的转换
8.9 树的遍历
习题8
第9章 图
9.1 图概述
9.1.1 图的基本概念
9.1.2 图的抽象数据类型
9.2 图的存储结构
9.2.1 图的邻接矩阵存储结构
9.2.2 图的邻接表存储结构
9.3 图的实现
9.3.1 邻接矩阵存储结构下图操作的实现
9.3.2 邻接表存储结构下图操作的实现
9.4 图的遍历
9.4.1 图的深度和广度优先遍历算法
9.4.2 图的深度和广度优先遍历算法实现
9.5 最小生成树
9.5.1 最小生成树的基本概念
9.5.2 普里姆算法
9.5.3 克鲁斯卡尔算法
9.6 最短路径
9.6.1 最短路径的基本概念
9.6.3 每对顶点之间的最短路径
9.7 拓扑排序
9.8 关键路径
习题9
第10章 排序
10.1 排序的基本概念
10.2 插入排序
10.2.1 直接插入排序
10.2.2 希尔排序
10.3 选择排序
10.3.1 直接选择排序
10.3.2 堆排序
10.4 交换排序
10.4.1 冒泡排序
10.4.2 快速排序
10.5 归并排序
10.6 基数排序
10.7 排序算法性能比较
习题10
第11章 查找
11.1 查找的基本概念
11.2 静态查找
11.2.1 顺序表
11.2.2 有序顺序表
11.2.3 索引顺序表
11.3 动态查找
11.3.1 二叉排序树和平衡二叉树
11.3.2 B-树和B树
11.4 哈希查找
11.4.1 哈希表的基本概念
11.4.2 哈希函数构造方法
11.4.3 哈希冲突解决方法
11.4.4 哈希表设计
习题11
第12章 文件
12.1 文件概述
12.1.1 文件的演变过程及基本概念
12.1.2 文件的存储介质
12.1.3 文件的基本操作
12.2 顺序文件
12.3 索引文件
12.4 ISAM文件
12.5 VSAM文件
12.6 散列文件
习题12
附录A 上机实习内容规范和上机实习报告范例
附录A.1 上机实习内容规范
附录A.2 上机实习报告范例
附录B 部分习题解答
参考文献

章节摘录

  【问题分析】 迷宫问题中包括有很多路口,每个路口最多有三个搜索分支,把算法设计为如下的搜索过程:把整个搜索分解为向左、向前和向右三个方向上子问题的搜索。当搜索到某个路口(设该路口为c)、发现该路口没有可搜索方向时,就让搜索过程回溯退到该路口的前一路口(设该路口为B),然后搜索这个路口(即路口B)的其他尚未搜索过的搜索方向;如果发现这个路口(即路口B)也没有可搜索方向时,就让搜索过程继续回溯退到这个路口的前一路口(设该路口为A)继续这样的搜索过程。这样的搜索过程一直进行到找到出口或搜索完了全部可连通的路口的可能搜索方向没有找到出口为止。  【数据结构设计】 要用计算机模仿迷宫问题,首先要把迷宫问题数值化。把每个路口定义成一个包括lefc、forward和right三个域的结构体,分别表示向左、向前和向右的搜索方向。如果某个域的值x为非0,则表示该方向上可到路口x;如果某个域的值x为0,则表示该方向上是死路。


编辑推荐

  《数据结构:使用C语言(第4版)》包含了2009年研究生入学统考大纲的全部内容。《数据结构:使用C语言(第4版)》讨论的典型数据结构问题。对于线性表、堆栈、队列、串、数组、广义表、树、二叉树和图等基本数据结构问题,都详细讨论了各自的逻辑结构、存储结构以及各种算法的设计方法。排序和查找是两个应用广泛的算法设计问题,《数据结构:使用C语言(第4版)》讨论了几种典型的排序算法,讨论了静态查找、动态查找和哈希查找的存储结构和查找方法。广义表、树、二又树和图这些非线性结构的算法经常要设计成递归算法,《数据结构:使用C语言(第4版)》专设一章讨论递归算法的设计方法等问题。

图书封面

图书标签Tags

广告

下载页面


数据结构 PDF格式下载



这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是这本。很多人喜欢买C++版的,但我觉得没有必要。C++的语法让算法实现过程变得复杂多了,而且许多老师喜欢用模块这一东西让算法变得更复杂。倒是在学完了C版的书以后再来浏览一下 C++的版的书是最好的。


结构浅析,代码详细。


这本书 很重要


我是211大二本科生。这本书便于自学,这是我们老师上课用的教材。


作为我们的教材 质量不用说 就是有点难


书的质量很好,内容可以。当当网的价格也很合理。


觉着适合考研复习。读者感觉比较单调~


当当的书永远不用怀疑


和严蔚敏的书一起看的,感觉浅显易懂又不失真意


最经典的书。。。著名作者。。好书


好书,我们正在学


书很好,会继续用当当买书。


实例丰富,便于理解!比较适用于初学者!


1.当当客服很好;
2.书是正版,内容好;
3.6天收到货不知出了什么问题;
4.整本书有折痕。


就是送货速度实在太慢了,订了一个星期才送到,让我错过了很多啊。


相关图书