随笔分类 - 数据结构与算法
大二上学期数据结构与算法课程参考
摘要:堆排序 从 13 里面拿出来的,害,后面的数组就自己编把,别和我重了 代码 #include <iostream> #include <string> using std::cin; using std::cout; using std::endl; using std::ostream; usin
阅读全文
摘要:实验13 排序综合 代码 别问我为什么没有实验14, 堆排序也在这里了 #include <iostream> #include <string> using std::cin; using std::cout; using std::endl; using std::ostream; using
阅读全文
摘要:实验12 动态查找 二叉排序树 代码 #include <iostream> using namespace std; #define ENDFLAG '#' struct ElemType { char key; // Other info }; struct BSTNode { ElemType
阅读全文
摘要:实验11 静态查找 代码 #include <iostream> using namespace std; #define MAXSIZE 100 struct ElemType { int key; //关键字域 // Other info }; struct SSTable { ElemType
阅读全文
摘要:实验10 关键路径 实验目的 通过上机掌握图的存储定义、生成、显示 掌握图的拓扑排序与关键路径算法 实验内容 从文件中读入有向图(网)并以邻接表存储 利用 AOE 网络求取其关键路径 代码 tu.txt (教程P179 图6.28) 9 11 a b c d e f g h i a b 6 a c
阅读全文
摘要:实验9 最短路径 实验目的 掌握图的存储结构 掌握迪杰斯特拉和弗洛伊德算法寻求最短路径算法及实现 实验内容 从文件中读入有向图(网)并以邻接矩阵存储 利用杰斯特拉算法寻求最短路径(弗洛伊德算法及实现自学完成) 代码 tu.txt (教程P171 图6.22) 6 8 a b c d e f a f
阅读全文
摘要:实验8 最小生成树 实验目的 掌握图的存储结构 掌握图最小生成树的普里姆或克鲁斯卡尔算法及实现 实验内容 从文件中读入无向图(网)并以邻接矩阵存储 利用普里姆算法构造最小生成树 代码 tu.txt (教程P166 图6.19) 6 10 A B C D E F A B 6 B E 3 E F 6 F
阅读全文
摘要:实验7.2 图的基础综合运算(邻接表存储) 实验目的 理解邻接表存储方式方法 理解连通图以邻接表存储时的深度-广度优先搜索遍历算法及实现 说明 参考代码里面固定创建队列和顶点数组容量为100, 邻接矩阵固定 100*100, 有点浪费内存,改成动态创建了 代码里面很多变量名只有单个字符,读起来不方便
阅读全文
摘要:实验7- 图的基础综合运算(邻接矩阵存储) 实验目的 理解邻接矩阵存储方式方法 理解连通图以邻接矩阵存储时的深度-广度优先搜索遍历算法及实现 说明 虽然实验是做连通图,但是看参考代码是想创建连通网,所以下面的代码其实是创建了一个网,输入的时候需要给权值 参考代码里面固定创建队列和顶点数组容量为100
阅读全文
摘要:实验6-赫夫曼树与赫夫曼编码 实验目的 掌握赫夫曼树的构成造算法与实现; 掌握赫夫曼编码的构成及实现。 说明 参考代码里面使用 char[] 保存赫夫曼编码,倒着存,再复制到新的 char[]里面,太繁琐了,改用 string 代替了 代码 #include <iostream> #include
阅读全文
摘要:实验5-二叉树综合运算 实验目的 掌握链队列的应用; 掌握二叉树的存储方式和基本算法的实现; 代码 #include <iostream> using namespace std; #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0
阅读全文
摘要:实验4-串模式匹配(BF和KMP算法) 实验目的 掌握串的定义及基本操作的实现; 掌握串的模式匹配算法及实现。 代码 #include <iostream> #include <cstring> using namespace std; #define OK 1 #define ERROR 0 #d
阅读全文
摘要:实验3-栈的应用-表达式求值 1、实验目的: 掌握栈的定义及实现; 掌握利用栈求解算术表达式的方法。 2、实验内容: 通过修改完善教材中 P78-79 的算法,利用栈来实现算术表达式求值的算法。 程序运行时,输入合法的算术表达式(中间值及最终结果要在 0~9 之间,可以包括加减乘除和括号),便可输出
阅读全文
摘要:实验2-链表 1、实验目的: (1)掌握线性表的定义; (3)掌握线性表的基本操作,如建立、查找、插入和删除等。 (4)掌握文件方式输入 2、实验内容: 定义一个包含学生信息(学号,姓名,成绩)的单链表,使其具有如下功能(参见教材中基本操作): (1) 从文件中输入学生信息(前插法和后插法构建表);
阅读全文
摘要:实验1-顺序表 实验目的: 掌握线性表的定义; 掌握线性表的顺序存储。 掌握线性表的基本操作,如建立、查找、插入和删除等。 实验内容: 定义一个包含学生信息(学号,姓名,成绩)的链表,使其具有如下功能(参见教材中基本操作): 根据指定学生个数,逐个输入学生信息(构建表或产生表); 逐个显示学生表中所
阅读全文