《数据结构与算法》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:熊岳山,刘越编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121047772
  • 页数:263 页
图书介绍:数据结构与算法是计算机专业的重要基础课,是该专业的核心课程之一,是一门集技术性、理论性和实践性于一体的课程。本书重点介绍抽象数据类型、基本数据结构、C语言数据结构描述、数据结构的应用、算法设计与分析以及算法性能评价等内容,进一步使读者理解数据抽象与编程实现的关系,提高用计算机解决实际问题的能力。本书内容包括基本数据类型、抽象数据类型、顺序表、链表、串、树和二叉树、图、递归与分治算法、分支限界和动态规划等内容。

第1章 数据结构概述 1

1.1 基本概念 1

1.1.1 数据、数据元素和数据对象 1

1.1.2 数据结构 2

1.2 数据结构的分类 3

1.3 数据类型 5

1.3.1 基本类型和组合类型 5

1.3.2 抽象数据类型 5

1.4 算法和算法分析 8

1.4.1 算法概念 8

1.4.2 算法分析 10

习题 12

第2章 向量、栈和队列 14

2.1 线性表 14

2.1.1 线性表的抽象数据类型 14

2.1.2 线性表的结构表示 16

2.2 向量 19

2.2.1 向量的抽象数据类型 19

2.2.2 向量的插入和删除 22

2.2.3 向量的应用 24

2.3 栈 28

2.3.1 栈的抽象数据类型及其实现 28

2.3.2 栈的应用 31

2.4 递归效率分析 39

2.4.1 递归方程求解 39

2.4.2 生成函数求解递归方程 40

2.4.3 特征方程求解递归方程 41

2.4.4 递归树方法 42

2.5 队列 44

2.5.1 队列的抽象数据类型及其实现 44

2.5.2 队列的应用:模拟银行活动 50

习题 58

第3章 链表 60

3.1 单链表 60

3.1.1 基本概念 60

3.1.2 单链表结点结构 61

3.1.3 单链表结构 63

3.1.4 栈的单链表实现 74

3.1.5 队列的单链表实现 76

3.1.6 单链表的应用举例 77

3.2 循环链表 82

3.3 双链表 84

习题 87

第4章 串 90

4.1 基本概念 90

4.2 串的存储 91

4.3 串结构和串的运算 92

4.4 模式匹配 94

4.4.1 朴素的模式匹配算法 94

4.4.2 KMP匹配算法 95

4.4.3 BM匹配算法 99

习题 101

第5章 排序 102

5.1 基本概念 102

5.2 插入排序 103

5.2.1 直接插入排序 103

5.2.2 折半插入排序 105

5.2.3 Shell排序 107

5.3 选择排序 109

5.3.1 直接选择排序 109

5.3.2 树形选择排序 110

5.4 交换排序 111

5.4.1 起泡排序 111

5.4.2 快速排序 113

5.5 分配排序 116

5.5.1 基本思想 116

5.5.2 基数排序 117

5.6 归并排序 120

5.7 外部排序 122

5.7.1 二路合并排序 123

5.7.2 多路替代选择合并排序 124

5.7.3 最佳合并排序 125

习题 126

第6章 查找 128

6.1 基本概念 128

6.2 顺序查找 128

6.3 折半查找 129

6.4 分块查找 131

6.5 散列查找 133

6.5.1 概述 133

6.5.2 散列函数 134

6.5.3 冲突的处理 137

6.5.4 散列查找的效率 140

习题 141

第7章 树和二叉树 144

7.1 树的概念 144

7.2 二叉树 145

7.2.1 二叉树的概念 145

7.2.2 二叉树的性质 146

7.2.3 二叉树的存储方式 148

7.2.4 树(树林)与二叉树的相互转换 150

7.3 树(树林)和二叉树的遍历 151

7.3.1 树(树林)的遍历 151

7.3.2 二叉树的遍历 152

7.4 抽象数据类型BinaryTree以及BinaryTree结构 153

7.4.1 抽象数据类型BinaryTree 153

7.4.2 一个完整的包含构建二叉树与遍历实现的例子 155

7.5 二叉树的遍历算法 156

7.5.1 非递归(使用栈)的遍历算法 156

7.5.2 线索化二叉树的遍历 158

习题 162

第8章 树形结构的应用 165

8.1 二叉排序树 165

8.1.1 二叉排序树与BinarySTree结构 165

8.1.2 二叉排序树的检索、插入和删除运算 166

8.1.3 等概率查找对应的最佳二叉排序树 170

8.2 平衡的二叉排序树 173

8.2.1 平衡的二叉排序树 173

8.2.2 平衡的二叉排序树的插入和删除 174

8.2.3 AVL树高度 177

8.3 B-树和B+-树 177

8.4 键树和2-3树 182

8.4.1 键树 182

8.4.2 2-3树 183

8.5 Huffman最优树 185

8.5.1 Huffman最优树 185

8.5.2 树编码 189

8.6 堆排序 190

8.7 判定树 197

习题 198

第9章 图 199

9.1 基本概念 199

9.2 图的存储表示 201

9.2.1 相邻矩阵表示图 201

9.2.2 图的邻接表表示 203

9.2.3 邻接多重表 204

9.3 基于邻接表表示的Graph结构 205

9.4 图的遍历 206

9.4.1 深度优先遍历 206

9.4.2 广度优先遍历 209

9.5 最小代价生成树 210

9.6 单源最短路径问题 215

9.7 每对顶点间的最短路径问题 218

9.8 有向无回路图 220

9.8.1 DAG图以及AOV和AOE网 220

9.8.2 AOV网的拓扑排序 222

9.8.3 AOE网的关键路径 224

习题 226

第10章 算法设计与分析 228

10.1 递归与分治 228

10.1.1 递归方法设计 228

10.1.2 分治法 229

10.2 回溯法 231

10.3 分支限界法 238

10.4 贪心算法 244

10.5 动态规划法 246

习题 249

参考文献 252

图索引 253

算法索引 258

关键字索引 261