您目前的位置: 首页» 教学资源» 出版教材» 数据结构(陈广山 郭群编著)

数据结构(陈广山 郭群编著)


目录

第1章 绪论
1.1 数据结构的概念
1.1.1 计算机解决问题的步骤
1.1.2 基本概念和术语
1.1.3 研究数据结构的意义
1.2 抽象数据类型的表示
1.2.1 数据类型
1.2.2 抽象数据类型
1.2.3 抽象数据类型的表示
1.3 算法和算法分析
1.3.1 算法特性
1.3.2 算法描述
1.3.3 算法性能分析与度量
1.4 本章小结
习题

第2章 线性表
2.1 线性表的定义及其基本操作
2.1.1 线性表的定义
2.1.2 线性表的基本操作
2.2 线性表的顺序表示与实现
2.2.1 顺序表
2.2.2 顺序表基本运算的实现
2.3 线性表的链式表示与实现
2.3.1 单链表
2.3.2 单链表的基本运算
2.4 双向链表
2.4.1 双向链表的存储结构
2.4.2 双向链表的基本运算
2.5 循环链表
2.6 静态链表
2.7 线性表的应用
2.8 顺序表和链表的比较
2.9 本章小结
习题

第3章 栈和队列
3.1 栈
3.1.1 栈的抽象数据类型的定义
3.1.2 栈的表示与实现
3.2 队列
3.2.1 队列的抽象数据类型的定义
3.2.2 队列的表示与实现
3.3 栈和队列的应用
3.3.1 栈的应用
3.3.2 队列的应用
3.4 本章小结
习题

第4章 数组和广义表
4.1 数组的概念
4.2 数组的存储结构
4.2.1 数组的内存映像
4.2.2 数组的顺序存储表示与实现
4.3 矩阵的压缩存储
4.3.1 特殊矩阵
4.3.2 稀疏矩阵
4.4 广义表的概念
4.5 广义表的存储结构
4.6 数组和广义表的应用
4.6.1 数组的应用
4.6.2 广义表的应用
4.7 本章小结
习题

第5章 串
5.1 串的基本概念
5.2 串的表示与实现
5.2.1 串的顺序存储表示与实现
5.2.2 串的链式存储表示与实现
5.3 模式匹配
5.3.1 简单的模式匹配算法
5.3.2 KMP算法
5.4 串的应用
5.4.1 文本编辑
5.4.2 文本加密
5.4.3 文本替换
5.5 本章小结
习题

第6章 树和二叉树
6.1 树
6.1.1 树的基本概念
6.1.2 树的表示
6.2 二叉树
6.2.1 二叉树的概念
6.2.2 二叉树的性质
6.2.3 二叉树的存储结构
6.3 二叉树的遍历
6.3.1 二叉树的遍历方法及递归实现
6.3.2 二叉树遍历的非递归实现
6.3.3 二叉树的应用
6.3.4 二叉树遍历的应用
6.4 线索二叉树
6.4.1 线索二叉树的定义及结构
6.4.2 线索二叉树的基本操作实现
6.5 树和森林
6.5.1 树的存储结构
6.5.2 树、森林与二叉树的关系
6.5.3 树和森林的遍历
6.6 哈夫曼树及其应用
6.6.1 哈夫曼树一
6.6.2 哈夫曼树编码
6.6.3 哈夫曼树的应用
6.7 树的应用
6.7.1 集合的表示
6.7.2 关系等价求等价类问题
6.8 本章小结
习题

第7章 图
7.1 图的基本概念
7.1.1 图的定义
7.1.2 图的基本术语
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 构造最小生成树的Prim算法
7.4.3 构造最小生成树的Kruskal算法
7.5 最短路径
7.5.1 从一个源点到其他各颂点的最短路径
7.5.2 每一对顶点之间的最短路径
7.6 有向无环图及其应用
7.6.1 有向无环图的概念
7.6.2 拓扑排序
7.6.3 关键路径
7.7 图的应用
7.7.1 图在路由器寻径中的应用
7.7.2 图在物流信息系统中的应用
7.8 本章小结
习题

第8章 查找
8.1 查找的基本概念
8.2 静态查找表
8.2.1 顺序表的查找
8.2.2 有序表的查找
8.2.3 索引表的查找
8.3 动态查找表
8.3.1 二叉排序树和平衡二叉树
8.3.2 B一树和B+树
8.4 哈希表
8.4.1 什么是哈希表
8.4.2 哈希函数的构造方法
8.4.3 冲突的解决方法
8.4.4 哈希表的查找
8.5 查找的应用
8.5.1 在ARMLinux中的应用
8.5.2 病毒特征代码串的搜索
8.6 本章小结
习题

第9章 排序
9.1 排序的基本概念
9.2 内部排序
9.2.1 插入排序
9.2.2 快速排序
9.2.3 选择排序
9.2.4 归并排序
9.2.5 基数排序
9.2.6 各种内部排序方法的比较和选择
9.3 外部排序
9.3.1 外部排序的方法-
9.3.2 多路平衡归并的实现
9.4 本章小结
习题

第10章 文件
10.1 文件的基本概念
10.2 文件组织
10.3 本章小结
习题
附录A 习题参考答案(部分)
附录B 2009年全国计算机专业硕士研究生入学考试大纲(数据结构)
参考文献

序言

随着计算机应用的普遍,计算机在非数值计算领域的应用越来越广泛,而数据结构知识是解决这类问题的基础,所以,“数据结构”在计算机与信息技术类专业的教学中具有突出的地位和作用。
“数据结构”是计算机与信息技术类专业的一门重要的专业基础课程,也是该专业的一门核心关键性课程。本书系统地介绍了常用的数据结构以及相应的算法,包括数据结构的基本概念、线性表、栈和队列、串、数组与广义表、树、图、查找和排序等。在计算机与信息科学中,数据结构不仅是一般程序设计的基础,还是设计和实现编译程序、操作系统、数据系统及其他系统程序的重要基础,本课程将为后续课程的学习、程序设计效率的提高奠定良好的基础。
本书是根据教育部有关“数据结构”教学的建议,以及全国计算机专业硕士研究生入学考试“数据结构”大纲编写的。在编写过程中,以通俗易懂、简明实用为宗旨,以方便教师的教和学生的学为基本理念,以基本知识为基础,重点体现理论够用、实践实用的原则,注意通过典型的案例促进对各种数据结构的理解。本书在编写过程中也注意了语言的形象性,避免晦涩现象的出现;力求抽象与形象相结合,知识点与计算机领域的具体应用相联系;算法与程序、习题相对应。
全书共分10章:第1章是绪论,主要介绍了数据结构的相关概念和术语,以及算法的特点和评价标准等内容;第2章介绍了线性表的有关概念和基本操作;第3章对栈和队列的知识进行了重点介绍;第4章为数组和广义表,对数组和广义表的基本表示和实现进行了研究;第5章的主要内容是串的基本操作;第6章介绍了典型的非线性结构二叉树,包括树、森林的基本概念、表示与实现,以及哈夫曼树的应用等内容;第7章介绍了图的基本理论,并对最短路径、关键路径、拓扑排序等应用做了重点介绍;第8章主要介绍了几种传统的查找方法,并对散列查找等现代查找方法进行了详细介绍。第9章主要介绍了常用的排序方法;第10章简单地介绍了文件的知识和基本操作。
为了加强对知识点的理解,每一章的后面都选配了适量的习题,供读者参考。为了方便教师开展教学工作,本书提供电子教案、课件和习题等教学资源。