《数据结构》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:胡学钢总主编;胡学钢,张先宜主编;史君华,强俊,黄晓梅,姜飞,陈景霞,韩凤英副主编
  • 出 版 社:合肥:安徽大学出版社
  • 出版年份:2015
  • ISBN:9787566408747
  • 页数:273 页
图书介绍:本书的主要内容包括:线性表、顺序表和链表的基本概念、存储结构和常用算法;栈、顺序栈和链栈的基本概念、存储结构和常用算法,队列、顺序队列(循环队列)和链队列的基本概念、常用算法;串、数组和广义表;树、二叉树、线索二叉树的基本概念、性质和遍历,树和森林,哈夫曼树;图的基本概念、存储结构、遍历和最小生成树;插入排序、交换排序、选择排序和归并排序;线性表的查找、二叉排序树的查找、哈希表查找;文件的基本概念、顺序文件、索引文件、散列文件和多关键字文件。本书准确简练地阐述理论知识、注重少而精,尽可能多地给出各种数据结构常用算法的C语言描述,内容突出实用性,以方便教师组织教学、学生课外自学。部分算法以案例形式给出。精选若干算法给出完整的C语言程序,使得学生能够依托这些程序实现其他算法,上机调式,加大培养学生实际动手能力。本书配备电子资料:主要算法的C语言源程序、C++源程序。本书可以作为高等院校计算机类相关专业本科,以及研究生的数据结构课程的教材,也可作为工程技术人员的自学参考书。

第1章 概论 1

1.1 “数据结构”的研究内容 1

1.1.1 计算机解决实际问题的过程 1

1.1.2 学习“数据结构”的意义 3

1.1.3 学习“数据结构”的四种境界 3

1.2 基本术语 4

1.3 算法描述及分析 6

1.3.1 算法描述语言概述 6

1.3.2 算法分析 7

小结 8

习题1 9

第2章 线性表 10

2.1 线性表的定义和运算 10

2.1.1 线性表的定义 10

2.1.2 线性表的运算 10

2.2 线性表的顺序存储结构 11

2.2.1 顺序存储结构 11

2.2.2 顺序表运算的实现 12

2.2.3 顺序表的应用 17

2.3 链表 22

2.3.1 链表基本结构 22

2.3.2 链表基本运算的实现 27

2.3.3 链表结构的应用 40

2.4 其他结构形式的链表 44

2.4.1 单循环链表 44

2.4.2 带尾指针的单循环链表 45

2.4.3 双链表结构 46

小结 50

习题2 50

第3章 栈和队列 53

3.1 栈 53

3.1.1 栈的定义和运算 53

3.1.2 顺序栈 54

3.1.3 链栈 57

3.1.4 栈的应用 58

3.2 队列 64

3.2.1 队列的定义和运算 65

3.2.2 顺序队列与循环队列 65

3.2.3 链队列 71

3.3 栈与递归 74

3.3.1 递归的基本概念 74

3.3.2 递归调用的内部实现原理 76

3.3.3 递归程序的阅读和理解 82

3.3.4 递归程序编写 89

3.3.5 递归程序转换和模拟 92

小结 95

习题3 95

第4章 串、数组和广义表 101

4.1 串 101

4.1.1 串的定义和运算 101

4.1.2 串的存储 101

4.2 数组 104

4.2.1 数组的定义和运算 104

4.2.2 数组的顺序存储 105

4.2.3 矩阵的压缩存储 106

4.3 广义表 108

4.3.1 广义表的基本概念 108

4.3.2 广义表的基本运算 109

4.3.3 广义表的存储 110

小结 111

习题4 112

第5章 树 113

5.1 树的概念和基本运算 115

5.1.1 树的定义 115

5.1.2 树的基本概念和术语 115

5.1.3 树的基本操作 117

5.2 二叉树 117

5.2.1 二叉树的基本概念 117

5.2.2 二叉树的性质 119

5.2.3 二叉树的存储结构 121

5.3 二叉树的遍历 125

5.3.1 遍历算法的实现 125

5.3.2 二叉树的创建与销毁 133

5.3.3 二叉树遍历算法的应用 136

5.4 线索二叉树 139

5.4.1 线索二叉树结构 139

5.4.2 线索二叉树中前驱后继的求解 141

5.5 树和森林 143

5.5.1 树的存储结构 144

5.5.2 树(森林)与二叉树的转换 147

5.5.3 树(森林)的遍历 151

5.6 哈夫曼树 152

5.6.1 问题描述及求解方法 154

5.6.2 应用实例 156

小结 157

习题5 157

第6章 图 161

6.1 图的定义和基本概念 161

6.1.1 图的定义 161

6.1.2 图的基本概念 162

6.1.3 图的顶点编号 168

6.2 图的存储结构 168

6.2.1 邻接矩阵表示 168

6.2.2 邻接表表示 170

6.2.3 图的创建和销毁 174

6.3 图的遍历算法及其应用 185

6.3.1 深度优先搜索遍历算法及其应用 186

6.3.2 广度优先搜索遍历算法及其应用 192

6.4 最小生成树 198

6.4.1 Prim算法 199

6.4.2 Kruskal算法 207

6.5 最短路径 212

6.5.1 从一个顶点到其余各个顶点的最短路径——Dijkstra算法 212

6.5.2 每一对顶点之间的最短路径——Floyd算法 220

6.6 有向无环图 223

6.6.1 拓扑排序 223

6.6.2 关键路径 228

小结 232

习题6 233

第7章 查找 236

7.1 概述 236

7.2 顺序表的查找 237

7.2.1 简单顺序查找 237

7.2.2 有序表的二分查找 238

7.2.3 索引顺序表的查找 240

7.3 树表的查找 241

7.3.1 二叉排序树 241

7.3.2 平衡二叉树 244

7.4 散列表的查找 249

7.4.1 散列表的基本概念 249

7.4.2 散列函数的构造方法 249

7.4.3 处理冲突的方法 250

7.4.4 散列表的查找 252

小结 253

习题7 253

第8章 排序 255

8.1 概述 255

8.1.1 排序及其分类 255

8.1.2 排序算法的评价指标 256

8.2 插入排序 256

8.2.1 直接插入排序 256

8.2.2 希尔排序 258

8.3 交换排序 260

8.3.1 冒泡排序 260

8.3.2 快速排序 261

8.4 选择排序 265

8.4.1 直接选择排序 265

8.4.2 堆排序 265

8.5 归并排序 270

8.5.1 归并 270

8.5.2 归并排序 271

小结 272

习题8 273