- 博客(62)
- 收藏
- 关注
原创 课程设计-学生成绩系统
程序代码:/***********************************************版权所有 (C)2015,wangxiao**文件名称:chengjixitong.cpp*文件标识:无*内容摘要:实现学成成绩的输入、插入、删除、修改、统计和输出*其他内容:无*当前版本:V1.0*作者:王晓*完成日期:20151224**修改记录:*修改日期:201
2015-12-24 12:19:29
1174
原创 数据结构 期末总结
时间过得真快,转眼间,就要期末考试了,大二上学期也就要结束了。这一学期跟着贺老师用翻转课堂的方式学习数据结构,第一次接触翻转课堂,习惯了传统的上课模式,刚接触翻转课堂觉得不习惯,可慢慢的觉得翻转课堂确实比传统的教学模式好,我们可以在空闲的时间去看学习视频,如果看一遍没看懂,还可以重复的看多遍。 大一的时候学习C++,通过OJ写一些简单的代码,那时候学的是一些简单的语法,还没有往深
2015-12-18 08:11:28
908
1
原创 第十六周项目4-英文单词的基数排序
问题及代码:设计一个基数排序的算法,将一组英文单词,按字典顺序排列。假设单词均由小写字母或空格构成,最长的单词有MaxLen个字母。 #include #include #include #define MaxLen 9 //单词的最大长度#define Radix 27 //基数rd为27,分别对应' ','
2015-12-14 17:19:49
420
原创 第十六周项目3-归并排序算法的改进
问题及代码:采用归并排序、快速排序等高效算法进行排序,当数据元素较少时(如n≤64),经常直接使用直接插入排序算法等高复杂度的算法。这样做,会带来一定的好处,例如归并排序减少分配、回收临时存储区域的频次,快速排序减少递归层次等。试按上面的思路,重新实现归并排序算法。 #include #include #include #include #define MinL
2015-12-14 17:15:03
318
原创 第十六周项目2-大数据集上排序算法性能的体验
问题及代码:设计一个函数,产生一个至少5万条记录的数据集合。在同一数据集上,用直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序等算法进行排序,记录所需要的时间,经过对比,得到对复杂度不同的各种算法在运行时间方面的感性认识。主函数main.cpp代码:#include #include #include #include #include "so
2015-12-14 17:04:09
496
原创 第十六周项目1(8)-基数排序
问题及代码:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(8)基数排序代码如下:#include #include #include #define MAXE 20 //线性表中最多元素个数#defin
2015-12-14 17:02:23
270
原创 第十六周项目1(7)-并归排序
问题及代码:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(7)并归排序代码如下:#include #include #define MaxSize 20typedef int KeyType; //定义关键字类型
2015-12-14 16:55:31
286
原创 第十六周项目1(6)-堆排序
问题及代码:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(6)堆排序#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoTy
2015-12-14 16:48:25
274
原创 第十六周项目1(5)-直接选择排序
运行结果:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(5)直接选择排序#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char Info
2015-12-14 16:44:01
255
原创 第十六周项目1(4)-快速排序
用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(4)快速排序以第一个数为基准,代码如下:#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef ch
2015-12-14 16:33:41
308
原创 第十六周项目1(3)-冒泡排序
问题及代码:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(3)冒泡排序代码如下:#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef cha
2015-12-14 16:26:03
262
原创 第十六周项目1(2)-希尔排序
问题及代码:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(2)希尔排序代码如下:#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef cha
2015-12-14 16:17:44
304
原创 第十六周项目1(1)-直接插入排序
问题及代码:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(1)直接插入排序直接插入排序代码如下:#include #define MaxSize 20typedef int KeyType; //定义关键字类型typ
2015-12-14 16:07:45
292
原创 第十五周项目3-B-数的基本操作
问题及代码:实现B-树的基本操作。基于序列{4, 9, 0, 1, 8, 6, 3, 5, 2, 7}完成测试。 (1)创建对应的3阶B-树b,用括号法输出b树。 (2)从b中分别删除关键字为8和1的节点,用括号法输出删除节点后的b树。 代码如下:#include #include #define MAXM 10 //定义B-树的
2015-12-07 16:50:54
283
原创 第十五周项目2-用哈希法组建关键字
问题及代码:已知一个关键字序列为if、while、for、case、do、break、else、struct、union、int、double、float、char、long、bool,共15个字符串,哈希函数H(key)为关键字的第一个字母在字母表中的序号,哈希表的表长为26。(2)若处理冲突的方法采用链地址法,请设计算法,输出哈希表,并计算成功情况和不成功情况下的平均查找长度。代码
2015-12-07 16:41:24
305
原创 第十五周项目2-用哈希法组建关键字
问题及代码:已知一个关键字序列为if、while、for、case、do、break、else、struct、union、int、double、float、char、long、bool,共15个字符串,哈希函数H(key)为关键字的第一个字母在字母表中的序号,哈希表的表长为26。(1)若处理冲突的方法采用线性探测法,请设计算法,输出每个关键字对应的H(key),输出哈希表,并求成功情况
2015-12-07 16:35:57
305
原创 第十五周项目1-哈希表及其运算的实现
问题及代码:写程序建立序列{16, 74, 60, 43, 54, 90, 46, 31, 29, 88, 77}的哈希表,装填因子定为0.8,哈希函数为h(k)=key%p,p=11,采用线性探查法解决冲突。测试中:(1)输出建立的哈希表; (2)完成关键字为29的元素的查找; (3)在上述哈希表中删除关键字为77的元素,再显示哈希表。程序代码:#include
2015-12-07 16:05:44
566
原创 第十四周项目3-是否二叉排序树
问题及代码:设计一个算法,判断给定的二叉树是否是二叉排序树。代码如下:#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node /
2015-11-30 16:36:03
344
原创 第十四周项目2-二叉树排序树中查找的路径
问题及代码:设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。 代码如下:#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node
2015-11-30 16:32:27
332
原创 第十四周项目1-验证算法(4)
问题及代码:验证平衡二叉树相关算法。 (1)由整数序列{43,52,75,24,10,38,67,55,63,60}构造AVL树; (2)输出用括号法表示的AVL树; (3)查找关键字55; (4)分别删除43和55,输出删除后用括号法表示的二叉排序树。 代码如下:#include #include typedef int KeyType;
2015-11-30 16:28:20
282
原创 第十四周项目1-算法验证(3)
问题及代码:验证二叉排序树相关算法。 (1)由整数序列{43,52,75,24,10,38,67,55,63,60}构造二叉排序树; (2)输出用括号法表示的二叉排序树; (3)用递归算法和非递归算法查找关键字55; (4)分别删除43和55,输出删除后用括号法表示的二叉排序树。代码如下:#include #include typedef int KeyType
2015-11-30 16:23:38
274
原创 第十四周项目1-验证算法(2)
问题及代码:验证分块查找算法,并用22,4,23,11,20,2,15,13,30,45,26,34,29,35,26,36,55,98,56, 74,61,90,80,96,127,158,116,114,128,113,115,102,184,211,243,188,187,218,195,210,279,307,492,452,408,361,421,399,856,523,704,70
2015-11-30 16:15:46
327
原创 第十四周项目1-验证算法(1)
问题及代码:验证折半查找算法,并用有序表{12,18,24,35,47,50,62,83,90,115,134}作为测试序列,分别对查找90、47、100进行测试。折半查找算法代码:#include #define MAXL 100typedef int KeyType;typedef char InfoType[10];typedef struct{ K
2015-11-30 16:05:49
289
原创 第十三周项目5-拓扑排序算法验证
问题及代码:拓扑排序算法验证(使用图4作为测试用例) (图4)头文件代码:#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示∞#define MaxSize 100
2015-11-23 16:57:31
393
原创 第十三周项目4-Floyd算法验证
问题及代码:Floyd算法验证(使用图3作为测试用例) (图3)头文件代码:#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示∞#define MaxSize 100
2015-11-23 16:50:33
264
原创 第十三周项目3-Dijkstra算法的验证
问题及代码:Dijkstra算法的验证(使用图2作为测试用例) (图2)头文件代码:#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示∞#define MaxSize 10
2015-11-23 16:40:04
358
原创 第十三周项目2-Kruskal算法的验证
问题及代码:Kruskal算法的验证(使用图1作为测试用例) (图1)头文件代码:#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示∞#define MaxSize 100
2015-11-23 16:16:05
368
原创 第十三周项目1-Prim算法验证
问题及代码:Prim算法的验证(使用图1作为测试用例)图(1)头文件graph.h代码:#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示∞typedef int InfoTy
2015-11-23 16:07:06
294
原创 第十二周项目2-操作用邻接表存储的图
问题及代码:假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度; (2)求出图G中出度最大的一个顶点,输出该顶点编号; (3)计算图G中出度为0的顶点数; (4)判断图G中是否存在边i,j> 。 利用下图作为测试用图,输出结果。头文件代码: #define MAXV 100
2015-11-16 17:09:16
335
原创 第十二周项目1-图算法库
问题及代码:定义图的邻接矩阵和邻接表的存储方式实现其基本运算,并完成测试。头文件graph.h代码:#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示∞typedef int InfoType;//以下定义邻接矩阵类型typedef struct{ int no
2015-11-16 16:14:49
273
原创 第十一周项目2-用二叉树求解算数表达式
问题及代码: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)。请设计算法,(1)根据形如“1+2∗3−4/5 ”的字符串代表的表达式,构造出对应的二叉树(如图),用后序遍历的思路计算表达式的值时,能体现出先乘除后加减的规
2015-11-09 16:52:40
413
原创 第十一周项目1-二叉树算法验证(哈夫曼编码的算法验证)
问题及代码:哈夫曼树的存储及生成算法。程序代码:#include #include #define N 50 //叶子结点数#define M 2*N-1 //树中结点总数//哈夫曼树的节点结构类型typedef struct{ char data; //结点值 double weight; //权重
2015-11-09 16:47:41
375
原创 第十一周项目1-二叉树算法验证(中序线索化二叉树的算法验证 )
问题及代码: 以中序线索树为例。程序代码:#include #include #define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data; int ltag,rtag; //增加的线索标记 struct node *lc
2015-11-09 16:45:30
304
原创 第十一周项目1-二叉树算法验证(二叉树算法构造的验证)
问题及代码:1.由先序序列和中序序列构造二叉树定理:任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一地确定。头文件btree.h代码:#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;typedef struct
2015-11-09 16:28:58
300
原创 第十一周项目一-二叉树算法验证(层次便利算法的验证)
问题及代码: 实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 头文件btree.h代码:#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;t
2015-11-09 16:14:51
386
原创 第十周项目3-用二叉树遍历思想解决问题
问题及代码:假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试: (1)计算二叉树节点个数; (2)输出所有叶子节点; (3)求二叉树b的叶子节点个数; (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。 (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是空的二叉树,相似;②
2015-11-02 16:56:20
242
原创 第十周项目3-利用二叉树遍历思想解决问题
问题及代码:假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试: (1)计算二叉树节点个数; (2)输出所有叶子节点; (3)求二叉树b的叶子节点个数; (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。 (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是空的二叉树,相似;②
2015-11-02 16:54:03
284
原创 第十周项目2-二叉树遍历的递归算法
问题及代码:实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 头文件btree.h代码:#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;
2015-11-02 16:35:04
315
原创 第十周项目1-二叉树算法库
问题及代码:定义二叉树的链式存储结构,实现其基本运算,并完成测试。要求:在main函数中完成测试,包括如下内容: (1)用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建如图的二叉树用于测试。 (2)输出二叉树 (3)查找值为’H’的节点,若找到,输出值为’H’的节点的左、右孩子的值 (4)求高度二叉树高度
2015-11-02 16:27:17
327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人