《面向对象C++数据结构》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Jan Harrington著;陈博译
  • 出 版 社:北京:科学出版社
  • 出版年份:2005
  • ISBN:7030145720
  • 页数:360 页
图书介绍:本书从C++编程语言的角度出发,详细介绍了线性表、堆栈、队列、树和二叉树等基本的数据结构,以及在程序设计中经常遇到的两个问题——查找和排序,并且提供了具体的C++实现方法。最终通过两个具体的示例,讲述了如何将数据结构应用到实际的编程工作中。

第一部分 基本数据结构 3

第1章 数组 3

1.1 容器类和迭代程序 3

目录 3

1.2 处理简单数据类型数组 4

1.2.1 添加元素 6

1.2.2 读取元素 6

1.2.5 查找数组的大小 7

1.2.6 使用数组管理器 7

1.2.4 查找元素 7

1.2.3 删除元素 7

1.2.7 使用迭代类列出元素 11

1.3 处理对象数组 13

1.3.1 被管理的类 13

1.3.2 Mix-In类 13

1.3.3 面向对象的数组管理器 14

1.3.4 对象数组管理器的使用方法 16

1.3.5 列出对象数组管理器的元素值 20

1.4 让类变得通用 21

1.4.1 模板的声明 22

1.5 小结 24

1.4.2 使用模板 24

第2章 向量 25

2.1 处理简单数据类型的向量 25

2.2 管理对象的向量 29

2.3 小结 33

第3章 链表 34

3.1 基本链表操作 34

3.2 单链表 35

3.2.1 链表的Mix-In类 35

3.2.2 单链表的节点类 37

3.2.3 链表管理器 38

3.2.4 使用链表管理器 43

3.3 双向链表 47

3.3.1 双向链表的节点 48

3.3.2 双向链表的链表管理器 49

3.3.3 实现多个迭代类 54

3.4 小结 57

第4章 堆栈和队列 58

4.1 堆栈 58

4.1.1 堆栈的用途 58

4.1.2 使用数组实现堆栈 61

4.1.3 使用链表实现堆栈 64

4.2 队列 66

4.2.1 队列的使用 67

4.2.2 使用数组实现队列 67

4.2.3 使用链表实现队列 69

4.3 小结 71

第二部分 树 75

第5章 二叉树 75

5.1 二叉树的结构 75

5.2 应用程序 78

5.4 树管理器类 79

5.3 修改Mix-In类 79

5.5 插入节点 80

5.6 查找节点 82

5.7 删除节点 83

5.8 树的遍历 87

5.8.1 遍历的类型 87

5.8.2 堆栈在树的遍历中的作用 88

5.8.3 编写和执行中序遍历 88

5.8.4 编写和执行先序遍历 91

5.9 使用比较函数 95

5.10 小结 97

第6章 AVL树 98

6.1 AVL树的操作 98

6.1.1 平衡因子 98

6.1.2 在修改AVL树时保持平衡 99

6.1.3 添加/删除节点后的新平衡因子 102

6.1.4 计算右旋转后的新平衡因子 102

6.1.5 计算左旋转后的新平衡因子 106

6.2 AVL树类 107

6.3 在AVL树中添加节点 110

6.4 从AVL树中删除节点 114

6.5 小结 117

第7章 B树 118

7.1 B树的概念 118

7.2 树的节点类 120

7.3 B树类 122

7.4 查找元素 122

7.5 插入元素 126

7.5.1 将元素插入到一个具有空间的节点 128

7.5.2 在一个满节点中插入元素 130

7.6 删除元素 132

7.6.1 从叶子节点中删除一个元素并留下足够的元素 136

7.6.2 从叶子节点中删除一个元素而且剩余的元素数量不足 137

7.6.3 从非叶子节点中删除元素 140

7.7 小结 141

第8章 二叉堆和优先级队列 143

8.1 二叉堆的特征 143

8.2 优先级队列类的声明 145

8.3 向量存储类 146

8.4 在优先级队列中插入元素 151

8.5 从优先级队列中删除元素 153

8.6 使用二叉堆排序 157

8.7 小结 159

第三部分 排序、访问和查找 163

第9章 排序和查找 163

9.1 已知内容 164

9.2 排序内容 164

9.3 测量排序算法的效率 165

9.4 排序例程的结构示例 166

9.5 冒泡排序 166

9.6 选择排序 169

9.7 插入排序 171

9.7.1 新数组的插入排序 171

9.7.2 现有数组的插入排序 172

9.8 希尔排序 173

9.9 快速排序 175

9.9.1 递归方式的快速排序 175

9.9.2 非递归的快速排序 178

9.10 归并排序 180

9.11 基数排序 183

9.12 二分法查找 186

9.13 小结 188

10.1 哈希表的概念 189

第10章 哈希表 189

10.1.1 冲突解决技术 190

10.1.2 创建哈希函数 191

10.1.3 哈希表的迭代 191

10.2 使用相邻元素解决冲突 191

10.2.1 添加元素 193

10.2.2 查找元素 194

10.2.3 列出元素 195

10.3 使用链表处理冲突 196

10.3.1 添加元素 197

10.3.2 查找元素 199

10.3.4 列出元素 200

10.3.3 删除元素 200

10.4 小结 202

第11章 字典 203

11.1 关联 203

11.2 Dictionary类 204

11.3 列出字典的内容 215

11.4 小结 217

12.1.1 Customer类 221

12.1 实体类 221

第12章 音像店 221

第四部分 应用示例 221

12.1.2 商品项目的层次结构 227

12.1.3 项目拷贝的层次结构 235

12.2 实用程序类 240

12.2.1 字符串 240

12.2.2 日期 243

12.2.3 菜单 247

12.3 数据结构的选择 249

12.3.1 向量类的改进 251

12.4 在应用程序类内部操作数据结构 256

12.4.1 管理用户界面 256

12.3.2 二叉树类的改进 256

12.4.2 文件I/O 258

12.4.3 添加对象 262

12.4.4 租用和归还拷贝 265

12.5 程序应该提供的其他功能 267

12.6 小结 267

第13章 小镇药房 269

13.1 实体类 269

13.1.1 Drug类 269

13.1.2 Customer类 273

13.1.3 Script类 276

13.1.4 有关删除操作的说明 281

13.2 选择用于文件访问的数据结构 282

13.3 应用程序类 296

13.3.1 程序的启动和终止运行 296

13.3.2 Run函数 298

13.3.3 构建索引 298

13.3.4 药物管理 301

13.3.5 管理患者 304

附录 模板 304

13.3.6 管理处方 306

13.4 小结 312