数据结构
shuiyihang0981
这个作者很懒,什么都没留下…
展开
-
顺序栈
首先说一下C++中的引用吧,什么是引用?例如 int a=&b,b;你说这样行不行,答案是否定的,必须要初始化时候int &a,b;a=b;//error,编译器报错引用换句话说就是给变量起一个别名,有什么好处呢,举个栗子!比如我们需要改变一个变量a的值,下面这一种很明显很失败!void ceshi(int num){ num=...原创 2018-09-01 21:37:53 · 116 阅读 · 0 评论 -
弗洛伊德算法Floyd-最短路径
似乎没什么说的。。。那就不说了原创 2018-09-25 21:50:20 · 184 阅读 · 0 评论 -
邻接表实现无向图的深度和广度遍历
/*/*DFS深度优先遍历邻接表*/#include <iostream>#include <malloc.h>using namespace std;#define MAX 20typedef struct e_node//表节点{ int vex;//索引值 struct e_node *next;}*enode;typedef ...原创 2018-09-15 11:54:39 · 4595 阅读 · 0 评论 -
关键路径
如果说拓扑排序是为了找到有向无环图AOV(动态顶点)的发生流程,关键路径则是AOE(动态边Active On Edge)有向无环图中 下一个事件(顶点)最早发生的时间,也就是现实生活中的一个老鼠坏一锅汤中的那只臭老鼠,一个故事,皇帝需要一味药来治病,各种药引子都准备好了,最重要的则是龙须一定要搞到~~(不太恰当)有时候我们不能过度自信。。。。可能很多人都遇到过一种情况,咦,怎么回事,明...原创 2018-09-25 19:07:16 · 241 阅读 · 0 评论 -
普里姆算法-最小生成树
感觉好久没更了。。。。。其实只是感觉,事情有点多,一时间有点懵,太原这几天一直在零零星星的下着雨,大一新生军训似乎要。。。。,早上也懒得起床了,生活过的有点糊涂。。。。东西好多啊,JavaScript,Opencv,还是要归于现实的,在9月把数据结构结束。所以忍着头皮把普里姆明白一下。。。。,大晚上的,难受。。。明天早起啊!!!!OK,正题,普里姆,最小生成树,注释里面有个人理解,先mar...原创 2018-09-19 23:25:06 · 2335 阅读 · 0 评论 -
拓扑排序
拓扑排序只存在于有向无环图中实际意义是:衡量任务的优先级,即任务2在做之前,要确保任务1已经完成,也就是工作的流程图,这也是为什么只存在于无环图里面每次寻找只有出度的任务(顶点)代码实现也主要借助两个东西,一个是一维数组用来存放某个顶点的入度,另一个就是栈,如果某个顶点入度等于0,就把它入栈,入栈之后把链结表中与这个顶点有联系的所有顶点入度减一,再次判断所有顶点是否入度等于零,重复上面...原创 2018-09-24 17:48:59 · 256 阅读 · 0 评论 -
邻接矩阵实现无向图的BFS和DFS
一:DFS创建邻接矩阵图的结构体typedef struct graph{ int vexnum,arcnum;//节点个数,弧的个数 int tyust[MAX][MAX];//使用二维数组定义一个矩阵 char vexs[MAX];//存储节点数据}*Graph;创建邻接矩阵图Graph creat_graph(){ int vex,ar...原创 2018-09-13 21:45:19 · 1858 阅读 · 0 评论 -
迪吉斯特算法-最短路径
迪吉斯特算法每次寻找最小权重展示一下流程:假设有向连通图是这一个,它有6个顶点分别是ABCDEF,8条路径AF,AE,AC,BC,CD,DF,ED,EF:256表示没连通,剩下的则是路径权重 A B C D E F A 256(无穷) 256(无穷) 10 256(无穷) 30 100 B ...原创 2018-09-23 23:04:57 · 630 阅读 · 0 评论 -
KMP-字符串快速查找
http://www.ruanyifeng.com/blog/2013/05/Knuth–Morris–Pratt_algorithm.html字符串匹配的KMP算法 转载一下,UP主已经写的很详细了,超赞!!/////////////////////////////////////割///////////////////////////////////////////////////...转载 2018-09-03 21:29:20 · 826 阅读 · 0 评论 -
递归与回溯
汉诺塔:X Y Z ---> X Y Zn n第一步:把X上面n-1个元素放到Y,把第n个元素放到Z第二步:把Y上面n-2个元素放到X,把第n-1个元素放到Z第三步:把X上面n-3个元素放到Y,把第n-2个元素放到Z第四步:...........eg...原创 2018-09-03 20:57:58 · 726 阅读 · 0 评论 -
递归之二叉树的建立和遍历
先序遍历建立二叉树:/*二叉树先序遍历,存放数据,打印出层数左子树,右子树*/#include <stdio.h>#include <iostream>#include <malloc.h>using namespace std;typedef char type;typedef struct node { type d...原创 2018-09-05 21:48:08 · 122 阅读 · 0 评论 -
线索二叉树-先序建立,中序线索化,中序访问节点
线索二叉树Lchild LTag data RTag Rchild 代码做一个线索二叉树的结构体typedef struct tyust{ type Ltag,Rtag; struct tyust *Lchild,*Rchild; char data;}*bit_tree;通过线序遍历建立一个二叉树//注:一般使用先序遍历...原创 2018-09-08 17:10:35 · 330 阅读 · 0 评论 -
赫夫曼树-Huffman编码
首先感叹,Huffman真牛逼!!尽量把文件压缩到最小通过最优排序,大数据把人们最常用的字符放到树前面,以实现最小编码。大致说一下原理,贴一下代码1:用户提供常用字符,建立一棵最优树2:得到每一个字符的编码code3:用户输入0和1,通过遍历最优树实现解码说起来很容易,编码设计到队列和二叉树,确实不容易敲出来接下来敲一下代码:/*注:没使用头文件,分文件写,考虑看家...原创 2018-09-11 12:35:21 · 228 阅读 · 0 评论 -
顺序队列和链队列基本操作
链队列:/*链队列*/#include <malloc.h>#include <iostream>typedef int type;typedef bool status;typedef struct tyust{ type data; struct tyust *next;}*node;struct queue{ nod...原创 2018-09-02 21:39:56 · 277 阅读 · 0 评论 -
顺序栈 中缀表达式转后缀表达式——计算器
可能会有人疑问读取栈中全部元素的条件是:while(z1.base!=z1.top)//跳出说明栈空{ pop(z1,entry);}有疑问的是:z1.base=z1.top;时候还有一个z1.base没有读,其实实在pop();里面定义的,大家看一下:void pop(tyust &s,type &e){ if(s.top==s.base)cout...原创 2018-09-02 16:18:18 · 707 阅读 · 0 评论 -
克鲁斯卡尔-最小生成树
最小生成树实际意义在于解决一张图里面,把所有顶点用最短路径全部连接第三次人工智能浪潮看了杨澜的节目,才继续坚持写,人工智能需要好的算法,是先人们几辈的积累和爆发我们要抓住这个时代。克鲁斯卡尔算法,最小生成树,插边,适合边少,稀疏借助两个数组,一个(se[]) 用来存放已经按照权值从小到大排完序的表一个(set[])用来存放顶点属于哪一个集合,刚开始初始化所有顶点独占一个集合...原创 2018-09-22 14:46:45 · 902 阅读 · 0 评论