目录 1
第一章 概论 1
§1 为什么要学习数据结构 1
§2 什么是数据结构 2
§3 数据的逻辑结构 3
§4 数据的存储结构 7
§5 数据的运算 9
§6 数据结构的选择和评价 13
习题 15
第一部分 线性结构 16
第二章 顺序表 16
§1 向量 16
§2 栈 21
§3 栈的应用——计算表达式的值 24
§4 栈与递归 29
§5 队列 35
§6 限制存取点的表 39
习题 40
第三章 链表与动态存储管理 42
§1 单链表 42
§2 栈和队列的链接存储表示 45
§3 可利用空间表 47
§4 线性表的其它链接存储表示 50
§5 存储管理问题概述 57
§6 存储的动态分配和回收 59
§7 伙伴(BUDDY)系统 67
习题 75
第四章 串(STRING) 76
§1 基本概念 76
§2 串的存储表示 77
§3 串的运算 80
§4 模式匹配 84
习题 92
第五章 内排序 93
§1 基本概念 93
§2 插入排序 94
§3 选择排序 101
§4 交换排序 103
§5 分配排序 108
§6 归并排序 112
习题 115
第六章 线性表的检索 117
§1 基本概念 117
§2 顺序检索 117
§3 二分法检索 118
§4 分块检索 121
§5 散列表的检索 122
§6 基于属性的检索 132
习题 133
第二部分 树形结构 137
第七章 树形结构的概念 137
§1 树的概念 137
§2 二叉树的概念 139
§3 树的二叉树表示 140
§4 周游树形结构 142
习题 144
第八章 树形结构的存储 146
§1 链式存储 146
§2 穿线树 148
§3 顺序存储 154
习题 159
第九章 二叉树周游算法 160
§1 使用栈的周游算法 160
§2 逆转链的周游算法 162
§3 Robson周游算法 164
§4 Siklóssy周游算法 166
习题 168
第十章 树目录 169
§1 二叉排序树 169
§2 最佳二叉排序树 172
§3 平衡的二叉排序树 180
§4 字符树 186
习题 193
§1 Huffman算法及其应用 194
第十一章 树形结构的其它应用 194
§2 堆排序 198
§3 决策树 203
§4 博弈树 206
习题 212
第三部分 复杂结构 213
第十二章 图 213
§1 图的概念 213
§2 图的存储表示法 216
§3 图的周游和生成树 219
§4 最短路径 224
§5 拓扑排序 229
§6 关键路径 233
习题 238
§1 多维数组 241
第十三章 多维数组、稀疏矩阵和广义表 241
§2 稀疏矩阵 244
§3 稀疏矩阵的乘法 248
§4 广义表(LIST)的概念 251
§5 广义表的存储 253
§6 无用单元的收集与存储压缩 256
习题 260
第四部分 文件结构 262
第十四章 顺序文件 262
§1 外存储器简介 262
§2 文件结构概述 266
§3 顺序文件 269
习题 272
第十五章 散列(Hash)文件 274
§1 按桶(Bucket)散列 274
§2 可扩充散列 276
习题 281
第十六章 索引顺序文件 282
§1 静态索引结构 282
§2 动态索引结构 285
习题 295
第十七章 倒排文件 296
§1 倒排文件的存储结构 297
§2 倒排文件上的运算 299
习题 304
第十八章 外排序 305
§1 磁盘排序 305
§2 磁带排序 311
习题 314
附录 关于书写算法的若干规定 316
参考书目 319