《数据结构 C++版 学习辅导与实验指导》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:王红梅,胡明,王涛编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302115028
  • 页数:247 页
图书介绍:本书是作者积多年讲授“数据结构”课程及指导学生实验的教学经验编写而成的,与清华大学出版社出版的《数据结构(C++版)》教材相配套,主要内容由三个模块组成;第一个模块是本章导学,包括知识结构图、学习要点、本章要点、本章难点、重点整理、重点难点释疑6个子模块;第二个模块是习题解析,包括课后习题讲解和学习自测两个子模块;第三个模块是实验指导,包括验证实验、设计实验和综合实验三个子模块。每个模块的章节顺序与《数据结构(C++版)》一书相对应,最后在附录中给出了实验报告和课程设计报告的参考范例。本书可以配合《数据结构》教材使用,起到衔接课堂教学和指导实验教学的作用,可作为高等院校本专科学生学习《数据结构》课程的参考教材,也可作为研究生入学考试的辅导教材,对于从事计算机软件开发和应用的工程技术人员也具有一定的参考价值。

目录 1

第一篇 学习辅导 1

第1章 绪论 1

1.1 本章导学 1

1.2 重点难点释疑 5

1.2.1 信息、数据与结构 5

1.2.2 数据结构、数据类型和抽象数据类型 5

1.2.3 逻辑结构与存储结构 6

1.2.4 如何选择或设计数据结构 7

1.2.5 问题、算法与程序 7

1.2.6 算法设计的一般原则 8

1.2.7 算法时间复杂度的分析方法 9

1.3 习题解析 10

1.3.1 课后习题讲解 10

1.3.2 学习自测及答案 15

第2章 线性表 17

2.1 本章导学 17

2.2 重点难点释疑 19

2.2.1 存储结构与存取结构 19

2.2.2 头指针、尾标志、开始结点与头结点 19

2.2.3 带头结点的单链表与不带头结点的单链表的区别 20

2.2.4 单链表算法的设计技巧 22

2.2.5 有序单链表的算法设计技巧 25

2.2.7 用单链表实现集合的操作 27

2.2.6 循环链表的算法设计技巧 27

2.3 习题解析 30

2.3.1 课后习题讲解 30

2.3.2 学习自测及答案 38

第3章 特殊线性表——栈、队列和串 43

3.1 本章导学 43

3.2 重点难点释疑 45

3.2.1 浅析栈的操作特性 45

3.2.2 递归算法转换为非递归算法 45

3.2.3 循环队列中队空和队满的判定方法 47

3.2.5 模式匹配KMP算法中求next数组的算法 49

3.2.4 如何利用循环链表实现队列的操作 49

3.3 习题解析 50

3.3.1 课后习题讲解 50

3.3.2 学习自测及答案 56

第4章 广义线性表——多维数组和广义表 59

4.1 本章导学 59

4.2 重点难点释疑 61

4.2.1 特殊矩阵压缩存储后存储位置的计算 61

4.2.2 稀疏矩阵压缩存储的空间性能 62

4.2.3 广义表的表头和表尾 62

4.3 习题解析 63

4.3.1 课后习题讲解 63

4.3.2 学习自测及答案 67

第5章 树和二叉树 69

5.1 本章导学 69

5.2 重点难点释疑 71

5.2.1 二叉树和树是两种不同的树结构 71

5.2.2 二叉表示树 72

5.2.3 二叉树的构造方法 73

5.2.4 二叉树遍历的递归实现图解 75

5.2.5 二叉树算法的设计技巧 75

5.2.6 哈夫曼树的构造过程中应注意的问题 77

5.3 习题解析 79

5.3.1 课后习题讲解 79

5.3.2 学习自测及答案 88

第6章 图 93

6.1 本章导学 93

6.2 重点难点释疑 95

6.2.1 深度优先遍历算法的非递归实现 95

6.2.2 图的遍历算法的应用 96

6.2.3 有向图的强连通分量 98

6.2.4 Kruskal算法的实现 99

6.2.5 改进的拓扑排序算法 100

6.3 习题解析 102

6.3.1 课后习题讲解 102

6.3.2 学习自测及答案 112

7.1 本章导学 115

第7章 查找技术 115

7.2 重点难点释疑 117

7.2.1 折半查找判定树及其应用 117

7.2.2 时空权衡 118

7.2.3 平衡二叉树的调整方法 119

7.2.4 数学应用 120

7.2.5 散列查找的性能分析 121

7.3 习题解析 123

7.3.1 课后习题讲解 123

7.3.2 学习自测及答案 129

8.1 本章导学 131

第8章 排序技术 131

8.2 重点难点释疑 133

8.2.1 排序算法的稳定性 133

8.2.2 如何将排序算法移植到单链表上 134

8.2.3 二叉排序树与堆的区别 135

8.2.4 递归算法的时间性能分析 135

8.3 习题解析 138

8.3.1 课后习题讲解 138

8.3.2 学习自测及答案 146

第9章 索引技术 151

9.1 本章导学 151

9.2.1 课后习题讲解 153

9.2 习题解析 153

9.2.2 学习自测及答案 156

第二篇 实验指导 161

第10章 基础实验 161

10.1 实验的一般步骤 161

10.1.1 概述 161

10.1.2 验证实验的一般步骤 162

10.1.3 设计实验和综合实验的一般步骤 163

10.2 设计实验 164

10.2.1 在数组中求最小值 164

10.2.2 统计候选人得票 164

10.3.1 顺序查找最好、最坏和平均的时间性能 165

10.3 综合实验 165

10.3.2 比较解决相同问题的不同算法的时间性能 166

第11章 线性表实验 169

11.1 验证实验 169

11.1.1 顺序表操作验证 169

11.1.2 单链表操作验证 174

11.2 设计实验 180

11.2.1 数组的循环移位 180

11.2.2 集合的交、并和差运算的实现 181

11.3 综合实验 182

11.3.1 约瑟夫环问题 182

11.3.2 一元多项式相加 184

12.1.1 栈操作验证 187

第12章 特殊线性表——栈、队列和串实验 187

12.1 验证实验 187

12.1.2 队列操作验证 189

12.1.3 串操作验证 190

12.2 设计实验 191

12.2.1 汉诺塔问题 191

12.2.2 火车车厢重排问题 192

12.2.3 统计文本中单词的个数 193

12.3 综合实验 195

12.3.1 表达式求值 195

12.3.2 迷宫问题 196

12.3.3 双端队列 197

第13章 广义线性表——多维数组和广义表实验 199

13.1 验证实验 199

13.1.1 对称矩阵的压缩存储 199

13.1.2 广义表操作验证 200

13.2 设计实验 202

13.2.1 稀疏矩阵的转置 202

13.2.2 广义表的遍历 203

13.3 综合实验 203

13.3.1 魔方阵 203

13.3.2 抽签游戏 204

14.1.1 树操作验证 207

第14章 树和二叉树实验 207

14.1 验证实验 207

14.1.2 二叉树操作验证 208

14.2 设计实验 211

14.2.1 求二叉树中叶子结点的个数 211

14.2.2 判断两棵二叉树是否相似 211

14.3 综合实验 212

14.3.1 信号放大器 212

14.3.2 哈夫曼编码 214

15.1 验证实验 215

15.1.1 邻接矩阵操作验证 215

第15章 图实验 215

15.1.2 邻接表操作验证 217

15.2 设计实验 220

15.2.1 求无向连通图的生成树 220

15.2.2 有向图的路径问题 220

15.3 综合实验 221

15.3.1 TSP问题 221

15.3.2 医院选址问题 222

第16章 查找技术实验 225

16.1 验证实验 225

16.1.1 顺序查找验证 225

16.1.2 折半查找验证 226

16.1.3 二叉排序树的建立 227

16.1.4 散列表的建立 229

16.2 设计实验 230

16.2.1 顺序查找与折半查找的性能比较 230

16.2.2 闭散列表和开散列表查找性能的比较 231

16.3 综合实验 233

16.3.1 直方图问题 233

16.3.2 简单个人电话号码查询系统 233

第17章 排序技术实验 235

17.1 验证实验 235

17.1.1 直接插入排序算法验证 235

17.1.2 起泡排序算法验证 236

17.1.3 简单选择排序算法验证 237

17.2 设计实验 238

17.2.1 直接插入排序基于单链表的实现 238

17.2.2 双向起泡排序 240

17.3 综合实验 241

17.3.1 各种排序算法时间性能的比较 241

17.3.2 机器调度问题 241

附录 245

附录A 实验报告的一般格式 245

附录B 课程设计报告的一般格式 246

参考文献 247