自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 {数据结构课程设计}校园导游的多功能实现

头文件 #define MAXV 100//最大顶点个数 #define INF 32767//INF表示∞ #include #include using namespace std; #include #include #include #include typedef int InfoType; /*定义校园景点信息*/ typedef struct { int no;//校园景

2015-12-30 09:07:31 1629 9

原创 学期总结

本学期,作为一名计算机专业学生,完成了其基本素养养成之《数据结构》。因为之前没有概念,所以开课前认定凭借名字觉得这是艰难的一门课。而对于慢热的人更是这样。线性表,栈和队列,串,递归,数组和广义表,数和二叉树,图,查找,内排序是学的主要内容。         数据结构是编程的骨架,所有学的结构是前人的结晶。我们理解,根据情况应用,便是这门课的意义。未来编程空间何其广,相关课程也须认真对待。   

2015-12-18 09:48:14 793 1

原创 (第十六周项目4)英文单词的基数排序

设计一个基数排序的算法,将一组英文单词,按字典顺序排列。假设单词均由小写字母或空格构成,最长的单词有MaxLen个字母。 #include #include #include #define MaxLen 9 //单词的最大长度 #define Radix 27 //基数rd为27,分别对应' ','a',…'z' t

2015-12-14 16:43:52 387

原创 (第十六周项目3)归并排序算法的改进

采用归并排序、快速排序等高效算法进行排序,当数据元素较少时(如n≤64),经常直接使用直接插入排序算法等高复杂度的算法。这样做,会带来一定的好处,例如归并排序减少分配、回收临时存储区域的频次,快速排序减少递归层次等。 试按上面的思路,重新实现归并排序算法。 #include #include #include #include #define MinLength 64

2015-12-14 16:41:08 332

原创 (第十六周项目2)大数据集上排序算法性能的体验

设计一个函数,产生一个至少5万条记录的数据集合。在同一数据集上,用直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序等算法进行排序,记录所需要的时间,经过对比,得到对复杂度不同的各种算法在运行时间方面的感性认识。 提示1:这一项目需要整合多种排序算法,可以考虑先建设排序算法库,作为我们这门课算法库的收官之作; 提示2:本项目旨在获得对于复杂度不同算法的感性认识,由于数

2015-12-14 16:36:52 380

原创 (第十六周项目1)验证算法

用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(1)直接插入排序;(2)希尔排序;(3)冒泡排序;(4)快速排序;(5)直接选择排序;(6)堆排序;(7)归并排序;(8)基数排序。 (1) 1.直接插入排序 #include #define

2015-12-14 16:24:48 392

原创 (第十五周项目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-树的最大的阶数 typedef

2015-12-14 16:22:56 298

原创 (第十五周项目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-14 16:19:36 321

原创 (第十五周项目1)验证算法

运行并本周视频中所讲过的算法,观察结果并领会算法。 1、认真阅读并验证哈希表实施查找的相关算法,写程序建立序列{16, 74, 60, 43, 54, 90, 46, 31, 29, 88, 77}的哈希表,装填因子定为0.8,哈希函数为h(k)=key%p,p=11,采用线性探查法解决冲突。测试中: (1)输出建立的哈希表; (2)完成关键字为29的元素的查找; (3)在上述哈

2015-12-14 16:16:24 293

原创 (第十四周项目3)是否二叉排序树

 设计一个算法,判断给定的二叉树是否是二叉排序树。 #include #include #define MaxSize 100 typedef int KeyType; //定义关键字类型 typedef char InfoType; typedef struct node //记录类型 { Key

2015-12-05 18:30:04 357

原创 (第十四周项目2)二叉树排序树中查找的路径

 设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。 #include #include #define MaxSize 100 typedef int KeyType; //定义关键字类型 typedef char InfoType; typedef struct node //记录类型 {

2015-12-05 18:27:55 327

原创 (第十四周项目1)验证算法

 运行并本周视频中所讲过的算法,观察结果并领会算法。 1、认真阅读并验证折半查找算法。请用有序表{12,18,24,35,47,50,62,83,90,115,134}作为测试序列,分别对查找90、47、100进行测试。 2、认真阅读并验证分块查找算法。请用22,4,23,11,20,2,15,13,30,45,26,34,29,35,26,36,55,98,56, 74,61,90,

2015-12-05 18:19:01 471

原创 (第十三周项目)验证算法

运行并本周视频中所讲过的算法,观察结果并领会算法。 (1)Prim算法的验证(使用图1作为测试用例) (图一) #include #include #include "graph.h" void Prim(MGraph g,int v) { int lowcost[MAXV]; //顶点i是否在U中 int min; int

2015-12-04 09:21:00 482

原创 (第十二周项目5)迷宫问题之图深度优先遍历解法

设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题。   (1)建立迷宫对应的图数据结构,并建立其邻接表表示。   (2)采用深度优先遍历的思路设计算法,输出从入口(1,1)点到出口(M,N)的所有迷宫路径。 将迷宫中的每一格作为一个顶点,相邻格子可以到达,则对应的顶点之间存在边相连。 例如下面的迷宫。   在使用数组表示时,用0表示格子是空地,用1表示格子处是墙,对应的矩阵

2015-12-04 08:37:12 488 1

原创 (第十二周项目4)利用遍历思想求解图问题

(1)设计一个算法,判断顶点u到v是否有简单路径 (2)设计一个算法输出图G中从顶点u到v的一条简单路径(设计测试图时,保证图G中从顶点u到v至少有一条简单路径)。 (3)输出从顶点u到v的所有简单路径。 (4)输出图G中从顶点u到v的长度为s的所有简单路径。 (5)求图中通过某顶点k的所有简单回路(若存在) (6)求不带权连通图G中从顶点u到顶点v的一条最短路径。 (

2015-12-04 08:25:11 388

原创 (第十二周项目3)图遍历算法实现

实现图遍历算法,分别输出如下图结构的深度优先(DFS)遍历序列和广度优先遍历(BFS)序列。 1、深度优先遍历——DFS #include #include #include "graph.h" int visited[MAXV]; void DFS(ALGraph *G, int v) { ArcNode *p; int w; visited[

2015-12-04 08:20:20 313

原创 (第十二周项目2)操作用邻接表存储的图

假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度; (2)求出图G中出度最大的一个顶点,输出该顶点编号; (3)计算图G中出度为0的顶点数; (4)判断图G中是否存在边。 提示:(1)分别设计函数实现算法;(2)不要全部实现完再测试,而是实现一个,测试一个;(3)请利用图算法库;(4)若将本项目中图G的存储结构改为邻接矩阵,相关操作又如

2015-12-04 08:16:57 455

原创 (第十二周项目1)图基本算法库

定义图的邻接矩阵和邻接表存储结构,实现其基本运算,并完成测试。 要求: 1、头文件graph.h中定义相关的数据结构并声明用于完成基本运算的函数。对应基本运算的函数包括: void ArrayToMat(int *Arr, int n, MGraph &g); //用普通数组构造图的邻接矩阵 void ArrayToList(int *Arr, int n, ALGraph *&);

2015-12-04 08:12:22 341

原创 (第十一周项目2)用二叉树求解代数表达式

 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)。请设计算法,(1)根据形如“1+2∗3−4/5 ”的字符串代表的表达式,构造出对应的二叉树(如图),用后序遍历的思路计算表达式的值时,能体现出先乘除后加减的规则;(2)对构造出的二叉树,

2015-12-01 21:05:41 536

原创 (第十一周项目1)二叉树算法验证

运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于,可以从更多角度体会算法,以达到逐渐掌握算法的程度。使用你的测试数据,并展示测试结果,观察运行结果,以此来领会算法。 (1)层次遍历算法的验证 #include #include "btree.h" void LevelOrder(BTNode *b) { BTNode *p; BTNode

2015-12-01 20:55:36 497

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除