第1章 什么是算法 1
1.1 什么是算法 1
1.2 算法和平台 6
1.3 调试与测试 14
1.4 小结 20
第2章 数组 21
2.1 数组 21
2.2 Delphi中的数组类型 21
2.3 TList类和指针数组 32
2.4 磁盘数组 38
2.5 小结 50
第3章 链表、栈和队列 51
3.1 单链表 51
3.2 双向链表 69
3.3 链表的优缺点 79
3.4 栈 79
3.5 队列 86
3.6 小结 93
第4章 查找 95
4.1 比较例程 95
4.2 顺序查找 97
4.3 二分查找 102
4.4 小结 108
第5章 排序 109
5.1 排序算法 109
5.2 排序基础知识 113
5.3 小结 148
第6章 随机算法 149
6.1 随机数生成 149
6.2 其他随机数分布 168
6.3 跳表 170
6.4 小结 182
第7章 散列和散列表 183
7.1 散列函数 184
7.2 利用线性探测方法实现冲突解决 187
7.3 其他开放定址机制 198
7.4 利用链式方法解决冲突 199
7.5 利用桶式方法解决冲突 208
7.6 磁盘上的散列表 209
7.7 小结 222
第8章 二叉树 223
8.1 创建一个二叉树 224
8.2 二叉树的插入和删除 224
8.3 二叉树的遍历 226
8.4 二叉树的类实现 233
8.5 二叉查找树 238
8.6 伸展树 248
8.7 红黑树 251
8.8 小结 265
第9章 优先队列和堆排序 267
9.1 优先队列 267
9.2 堆 272
9.3 堆排序 278
9.4 扩展优先队列 281
9.5 小结 287
第10章 状态机和正则表达式 289
10.1 状态机 289
10.2 正则表达式 306
10.3 小结 330
第11章 数据压缩 331
11.1 数据表示 331
11.2 数据压缩 331
11.3 位流 332
11.4 最小冗余压缩 336
11.5 字典压缩 359
11.6 小结 378
第12章 高级主题 379
12.1 读者-写者算法 379
12.2 生产者-消费者算法 385
12.3 查找两文件的差别 402
12.4 小结 417