1 基本的设计技术 1
1.1 黑盒子 1
1.2 演算法 3
1.3 资料结构 7
1.4 资料结构图 9
1.5 程式设计的注解 10
1.6 流程图 12
2 一般的设计技术 15
2.1 程式设计 15
2.2 回圈的剖析 18
2.3 习题 32
参考书目 34
3 线性链结串列 35
3.1 单链串列 35
3.2 插入一个新的节点 41
3.3 双链串列 43
3.4 习题 45
参考书目 46
4 二元树 47
4.1 堆叠的探讨 50
4.2 二元树的走访 51
4.3 前序走访程式 53
4.4 习题 56
参考书目 56
5 递回 57
5.1 递回范例 57
5.2 阶乘函数 58
5.3 最大公因数 59
5.4 有序阵列的二分搜寻 60
5.5 阵列排序 63
5.6 二元树的建立 65
5.7 习题 70
参考书目 71
6 递回之消去 73
6.1 一般步骤 73
6.2 CALL-followed-by-RETURN之顺序 75
6.3 堆叠范例 77
6.4 习题 80
7 退回追踪法 81
7.1 八个皇后问题 81
7.2 骑士之旅问题 85
7.3 稳定婚姻问题 92
7.4 习题 97
8 优先顺序驱动之语法分析 99
8.1 二元运算子 100
8.4 二元树表示法 101
8.5 算术运算式 101
8.3 中置和倒置表示法 101
8.2 单元运算子 101
8.6 符记 102
8.7 转变成二元树形式 112
8.8 习题 114
参考书目 114
9 动态程式设计 117
9.1 背包问题 117
9.2 网路中的最短路径 120
9.3 生产排程 123
参考书目 126
附录A 习题解答 127
附录B 示范程式 158
附录C 虚拟码的标准 176
索引 182