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