当前位置:首页 > 工业技术
数据结构 C++描述
数据结构 C++描述

数据结构 C++描述PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:金远平编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:730210798X
  • 页数:336 页
图书介绍:本书系统、全面地论述数据结构的重要内容和成果,包括基本概念和方法、线性表、链表、树、堆结构、图、排序和搜索结构。在充分继承国内外经典教材的合理体系结构和优秀内容的基础上,结合国内的教学实际编写;内容系统、精炼且经过优化整合,在深度和广度上有明显增强;强调分析问题和解决问题的方法,以及产生这些方法的背景。书中内容都经过编著深入研究,且在教学实践中反复验证,因而较易理解。全书概念深刻准确,逻辑性强。本书适合于作为计算机科学与技术、软件工程以及相关专业的教材,也可供从事相关专业的科技与工程人员参考。
《数据结构 C++描述》目录

目录 1

第1章 基本概念和方法 1

1.1 数据结构与软件系统 1

1.2 数据抽象与封装 2

1.3 算法定义 5

1.4 递归算法 6

1.5 性能分析 9

1.5.1 空间复杂性 9

1.5.2 时间复杂性 10

1.5.3 O表示法 14

1.5.4 代价分摊 16

1.5.5 实际可行的复杂性 19

1.6 性能测量 20

1.7 C++中的模板 22

1.8 效率与权衡 24

习题1 24

第2章 线性表 26

2.1 线性表与数组 26

2.2 多项式 27

2.2.1 多项式的表示 28

2.2.2 多项式相加 30

2.3 稀疏矩阵 31

2.3.2 稀疏矩阵的转置 32

2.3.1 稀疏矩阵的表示 32

2.4 字符串 35

2.4.1 字符串模式匹配的简单算法 36

2.4.2 字符串模式匹配的KMP算法 36

2.4.3 两个字符串的最长公共子序列 39

2.5 栈 41

2.6 队列 44

2.7 迷宫问题 47

2.8 表达式计算 51

2.8.1 表达式 51

2.8.2 后缀表示 51

2.8.3 将中缀转化为后缀 52

2.9 机场模拟 54

习题2 61

第3章 链表 66

3.1 单链表 66

3.1.1 单链表的表示 67

3.1.2 基本操作 68

3.2 重用链表类 70

3.2.1 用模板定义链表 70

3.2.2 链表游标 71

3.2.3 链表操作 74

3.3 环链表 75

3.4 链式栈和队列 77

3.5.1 多项式表示 79

3.5 链式多项式 79

3.5.2 多项式相加 80

3.5.3 删除多项式 81

3.5.4 环链多项式 82

3.6 等价类 84

3.7 稀疏矩阵的链表实现 87

3.7.1 稀疏矩阵表示 87

3.7.2 输入稀疏矩阵 90

3.7.3 删除稀疏矩阵 91

3.8 双链表 92

3.9.1 广义表的概念及表示 94

3.9 广义表 94

3.9.2 递归算法 96

3.9.3 引用计数、共享与递归表 100

3.10 动态类型与异构表 102

习题3 105

第4章 树 109

4.1 树和森林的概念及其表示 109

4.2 二叉树 111

4.2.1 二叉树定义 111

4.2.2 二叉树的性质 112

4.2.3 二叉树表示 114

4.3 二叉树遍历与树游标 115

4.3.1 中序遍历 116

4.3.2 前序遍历 117

4.3.3 后序遍历 118

4.3.4 中序游标 118

4.3.5 后序游标 120

4.3.6 按层次遍历 121

4.4 满足性问题 122

4.5 线索二叉树 125

4.5.1 线索 125

4.5.2 中序遍历线索二叉树 127

4.5.3 后序遍历线索二叉树 128

4.5.4 将结点插入线索二叉树 131

4.6.1 胜者树 133

4.6 选择树 133

4.6.2 败者树 134

4.7 森林的二叉树表示及遍历 136

4.8 集合表示 137

4.8.1 并查集 137

4.8.2 在等价类问题中的应用 143

4.9 二叉树计数 144

习题4 149

第5章 堆结构 152

5.1 最大堆 152

5.1.1 优先队列与最大堆 152

5.1.2 插入操作 154

5.1.3 删除操作 155

5.2.1 双端优先队列与最小最大堆 156

5.2 最小最大堆 156

5.2.2 插入操作 157

5.2.3 删除最小元素操作 160

5.3 双堆 162

5.3.1 双堆定义 162

5.3.2 插入操作 164

5.3.3 删除最小元素 166

5.4 左偏(1eftist)树 168

5.5 二项式堆 172

5.5.1 二项式堆定义 173

5.5.4 删除最小元素 175

5.5.3 合并操作 175

5.5.2 插入操作 175

5.5.5 分析 177

5.6 斐波纳契堆 178

5.6.1 斐波纳契堆定义 178

5.6.2 删除操作 178

5.6.3 key值减少操作 179

5.6.4 瀑布修剪 179

5.6.5 分析 181

习题5 182

第6章 图 185

6.1 图的基本定义 185

6.2.1 邻接矩阵 188

6.2 图的表示 188

6.2.2 邻接表 189

6.2.3 邻接多表 192

6.3 连通图的遍历 194

6.3.1 深度优先搜索 194

6.3.2 广度优先搜索 195

6.3.3 生成树 196

6.4 图的连通性 197

6.4.1 连通分量 197

6.4.2 双连分量 198

6.5 最小代价生成树 201

6.5.1 克鲁斯卡尔算法 201

6.5.2 普瑞姆算法 204

6.6 最短路径和传递闭包 205

6.6.1 边长非负时的单源点到所有终点的最短路径 205

6.6.2 所有顶点对之间的最短路径 209

6.6.3 传递闭包 211

6.7 活动网络 212

6.7.1 AOV网络 212

6.7.2 AOE网络 216

习题6 222

第7章 排序 225

7.1 引言 225

7.2 插入排序 226

7.3 希尔(Shell)排序 228

7.4 快速排序 230

7.5 归并排序 233

7.5.1 迭代归并排序 233

7.5.2 递归归并排序 236

7.6 堆排序 238

7.7 基数排序 241

7.8 基于链表和映射表排序结果的顺序化 244

7.9 外排序 249

7.9.1 概述 249

7.9.2 k-路归并 251

7.9.3 生成初始归并段 252

7.9.4 归并段的最佳归并和哈夫曼树 256

习题7 259

第8章 查找结构 262

8.1 符号表 262

8.2 二叉查找树 263

8.2.1 二叉查找树定义 263

8.2.2 二叉查找树的查找、插入和删除操作 264

8.2.3 二叉查找树的结合与分裂 266

8.2.4 二叉查找树的性能分析 269

8.2.5 最佳二叉查找树 272

8.3 AVL树 278

8.4 2-3树 285

8.4.1 定义与性质 285

8.4.3 2-3树的插入操作 287

8.4.2 2-3树的查找 287

8.4.4 2-3树的删除操作 289

8.5 Splay树 292

8.6 B树 297

8.6.1 m叉查找树 297

8.6.2 m叉查找树的查找 299

8.6.3 B树的定义和性质 300

8.6.4 B树的插入操作 302

8.6.5 B树的删除操作 304

8.6.6 B+树 307

8.7 Trie 310

8.7.1 Trie的定义 310

8.7.2 Trie的查找 311

8.7.3 取样策略 312

8.7.4 在Trie中插入和删除元素 312

8.8 静态散列 313

8.8.1 散列表 313

8.8.2 散列函数 315

8.8.3 溢出处理 316

8.9 动态散列 320

8.9.1 带目录动态散列 321

8.9.2 无目录动态散列 327

习题8 328

索引 332

参考文献 336

相关图书
作者其它书籍
返回顶部