|
| 这里的代码由张乃孝老师组织编写,放在这里之前做了修整和格式化。代码可能与原书有异,但算法基本未变。 仅供使用该教科书讲课和学习时参考。如果发现代码中的问题,请及时告知。谢谢! |
| 第2章,表 |
| 表的顺序表示实现的头文件和基本程序文件。 表的链接表示实现的头文件和基本程序文件 |
| 表的动态顺序表示实现的头文件和基本程序文件(原书没有) |
| 应用举例——Josephus问题: 顺序表实现和循环链接表实现 |
| 第3章,字符串 |
| 字符串的顺序表示(包括模式匹配算法)和链接表示 |
| 第4章,栈和队列 |
| 栈(堆栈)的顺序表示实现的头文件和基本程序文件。 栈的链接表示实现的头文件和基本程序文件 |
| 栈应用举例: 简化背包问题的递归算法和非递归算法。 迷宫问题的递归算法和非递归算法 |
| 队列的顺序表示实现的头文件和基本程序文件。 队列的链接表示实现的头文件和基本程序文件 |
| 队列应用实例:农夫过河问题 |
| 第5章,树和二叉树 |
| 树的树的长子-兄弟表示, 树的父指针表示, 树的子表表示 |
| 树的周游:先根序(递归), 先根序(非递归), 中根序(递归), 后根序(递归), 层次序 |
| 二叉树的链接表示, 顺序表示, 线索二叉树 |
| 二叉树的周游(遍历):先根序(递归), 对称序(递归), 后根序(递归), 后根序(非递归) |
| 哈夫曼算法和哈夫曼树 |
| 第6章,字典与检索 |
| 字典表示:顺序表表示, 散列表和开地址法, 二叉排序树表示, AVL树表示 |
| 字典的顺序表表示的顺序检索, 二分法检索 |
| 字典的散列开地址表示的相关算法 |
| 字典的二叉排序树表示的相关算法 |
| 字典的AVL树表示的相关算法 |
| 最佳二叉排序树的构造算法 |
| 第7章,排序 |
|
直接插入排序,
二分法插入排序,
表插入排序,
Shell排序,
直接选择排序,
堆排序, 起泡排序, 快速排序, 基数排序, 归并排序 |
| 第8章,图 |
| 图的表示:邻接矩阵, 邻接表 |
|
图的周游(遍历):广度优先(邻接矩阵),
广度优先(邻接表), 深度优先(邻接矩阵,递归), 深度优先(邻接矩阵,非递归), 深度优先(邻接表,非递归) |
| 最小生成树:Prim算法, Kruskal算法 |
| 最短路径:Dijkstra算法(一结点到其余结点), Floyd算法(各结点之间) |
| 拓扑排序:邻接表, 邻接矩阵 |
| 关键路径的算法 |
| 第9章,算法设计与分析 |
| 背包问题的贪心算法 |
| 组合数的动态规划算法 |
| 骑士周游问题的回溯算法 |
| 0/1背包问题的回溯算法, 动态规划算法, 分支界限算法 |
| 本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。 其他使用需得到作者许可。 |