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