《数据结构 Java语言版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:黄国瑜,叶乃菁编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2002
  • ISBN:7302051194
  • 页数:403 页
图书介绍:本书包括以下两方面的内容:一是用合适的算法来规划程序流程,二是采用简洁的数据结构来表示程序中的数据和变量。

第1章 数据结构的基本概念 1

1.1 何谓数据结构 2

1.2 算法与伪码 2

1.3 程序结构化与设计风格 5

1.4 程序分析的方法 8

1.5 时间复杂度分析 11

1.6 渐近式表示法 13

1.6.1 时间复杂度的各类等级 13

1.6.2 渐近式表示法 14

1.7 递归式的复杂度计算 16

第2章 数组 21

2.1 何谓数组 22

2.2 一维数组 22

2.3 一维数组的使用 24

2.4 一维数组的存取 26

2.5 一维数组的遍历 29

2.6 一维数组的进一步使用 30

2.7 二维数组 35

2.8 数组表示法 39

2.9 特殊类型的数组 43

2.9.1 稀疏数组 43

2.9.2 上三角数组 46

2.9.3 下三角数组 50

第3章 链表 57

3.1 何谓链表 58

3.2.1 链表内节点的配置 59

3.2 利用数组来建立链表 59

3.2.2 链表的节点链接 62

3.2.3 单链表的查找 66

3.3 单链表的基本处理 69

3.3.1 单链表内节点的插入 69

3.3.2 单链表内节点的删除 74

3.3.3 单链表的反转 79

3.3.4 单链表的连接 83

第四章 堆栈 89

4.2 用数组模拟堆栈 90

4.1 何谓堆栈 90

4.3 使用Stack类 94

4.4 表达式的表示法 96

4.5 中序表达式的表示法及计算 98

4.6 前序表达式的表示法及计算 103

4.7 后序表达式的表示法及计算 106

4.8 表达式的转换 109

第五章 队列 115

5.2 用数组模拟队列 116

5.1 何谓队列 116

5.3 环状队列 121

5.4 双向队列 126

5.5.1 输入限制性双向队列 127

5.5.2 输出限制性双向队列 131

第6章 递归 137

6.1 何谓递归 138

6.2 函数调用与参数传递 141

6.3.1 阶乘问题 146

6.3 数学问题 146

6.3.2 最大公因子问题 147

6.3.3 费氏级数问题 149

6.3.4 组合公式 150

6.4 汉诺塔问题 152

6.5 N皇后问题 157

6.6 迷宫问题 164

第7章 基础树状结构 173

7.1.2 树的相关名称及意义 174

7.1.1 何谓树 174

7.1 何谓树状结构 174

7.2 二叉树 175

7.2.1 何谓二叉树 175

7.2.2 二叉树和树的比较 176

7.2.3 二叉树的相关特色 176

7.3 二叉树表示法 177

7.3.1 二叉树数组表示法 177

7.3.2 二叉树节点数组表示法 181

7.4 二叉树的遍历 185

7.4.1 二叉树的前序遍历 186

7.4.2 二叉树的中序遍历 189

7.4.3 二叉树的后序遍历 193

7.5 二叉树的查找 197

7.5.1 何谓二叉查找树 197

7.5.2 二叉树的查找方式 197

7.6 二叉树的节点删除 201

7.6.1 节点无左子树,无右子树 201

7.6.2 节点有左子树,无右子树 202

7.6.3 节点无左子树,有右子树 203

7.6.4 节点有左子树,有右子树 203

7.6.5 程序实例 204

7.7 一般树转换为二叉树 209

7.8 线索二叉树 211

7.9 二叉树的应用(表达式) 217

第8章 排序 221

8.1.1 排序的意义 222

8.1.2 排序的特性——稳定性与不稳定性 222

8.1 保谓排序 222

8.1.3 排序的分类 223

8.2 内部排序法——交换式排序 223

8.2.1 冒泡排序法 223

8.2.2 快速排序法 228

8.3 内部排序法——选择式排序 233

8.3.1 选择排序法 234

8.3.2 堆排序法 237

8.4.1 插入排序法 244

8.4 内部排序法——插入式排序 244

8.4.2 谢耳排序法 248

8.4.3 二叉树排序法 251

8.5 外部排序——合并排序法 255

8.6 排序法的效率比较 260

第9章 查找 263

9.1 何谓查找 264

9.2 线性查找 264

9.3 折半查找 268

9.4 费氏查找 273

9.5 插补查找 278

9.6 杂凑查找 287

9.6.1 杂凑函数 287

9.6.2 杂凑碰撞解决法 291

9.6.3 杂凑查找 295

9.7 二叉查找树 298

第10章 复杂链表 305

10.1 循环链表 306

10.1.1 循环链表的建立与释放 306

10.1.2 循环链表内节点的插入 310

10.1.3 循环链表内节点的删除 316

10.2 双向链表 321

10.2.1 双向链表的建立与释放 321

10.2.2 双向链表的插入 326

10.2.3 双向链表的删除 332

第11章 图形结构 341

11.1 何谓图形结构 342

11.1.1 图形问题的起源与图形定义 342

11.1.2 图形结构有关概念 343

11.2.1 邻接数组表示法 347

11.2 图形的表示法 347

11.2.2 邻接表表示法 350

11.2.3 多重邻接表表示法 353

11.2.4 加权边的图形 354

11.3 图形的搜索 354

11.3.1 深度优先法 354

11.3.2 广度优先法 359

11.4.1 生成树 364

11.3.3 连通组件 364

11.4 生成树问题 364

11.4.2 最小生成树 366

11.4.3 Kruskal算法 367

11.4.4 Prims算法 372

11.5 最短路径问题 378

附录A ASCII码 387

附录B 习题解答 391

附录C Java中常用的类 401