![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
萝卜炖着吃
这个作者很懒,什么都没留下…
展开
-
数据结构实验报告---图的邻接表及其基本算法
图的邻接表及其基本算法邻接表的建立创建邻接表图DFS遍历BFS遍历Prim最小生成树Kruskal最小生成树Dijkstra最短路径拓扑排序主函数测试结果 邻接表的建立 #include<iostream> #include<algorithm> using namespace std; const int MAX = 20; typedef char datatype; //边表结点 struct ArcNode { int adjvex;//结点下标 int weight;/原创 2020-07-09 19:27:25 · 3288 阅读 · 1 评论 -
图的邻接表及其深度优先(DFS)、广度优先(BFS)遍历
图的邻接表及其DFS、BFS遍历图的邻接表创立邻接表的DFS遍历邻接表的BFS遍历完整代码测试数据 图的邻接表创立 邻接表在图是稀疏图时,即 边远小于顶点的平方时使用 如果是带权网络,则增加相应的权值域即可 #include<iostream> using namespace std; const int MAX = 20; typedef char VertexType;//顶点数据类型 //边表结点 struct EdgeNode { int adjvex;//存储他弧的信息,也就是对应原创 2020-06-17 00:36:46 · 2890 阅读 · 2 评论 -
二叉树的4种遍历的递归与非递归实现
二叉树的4种遍历的递归与非递归实现前言创建一个二叉树创建存放二叉树指针的栈创建存放二叉树指针的队列递归版前序遍历非递归版前序遍历递归版中序遍历非递归版中序遍历递归版后序遍历非递归版后序遍历层序遍历测试数据完整代码结尾 前言 数据结构老师又开始水了,不对,是一直水!只好自学了。代码里面有关键步骤的注释,发个帖子记录一下。 创建一个二叉树 构造一个二叉树 #include<iostream> using namespace std; const int max = 100; typedef char原创 2020-05-29 12:20:39 · 398 阅读 · 2 评论 -
回型输入和回型输出
回型输入和回型输出 输入m,n,输出一个m*n的回型(顺时针方向)矩阵,再回型(逆时针方向)输出 对于是顺时针输入还是逆时针输入,只需要更改初始x,y值就行。顺时针:x=0,y=-1;逆时针:x=-1,y=0即可。 至于为什么是-1,是因为为了编程的方便以及避免自加后越界导致需要减回边界 这里使用的是循环较为方便,经过分析发现也可使用递归,一个大矩阵里面包含了小矩阵,递归式大致为f(大)=f(小)+小的外围边框。 #include <cstring> #include <iostream&原创 2020-05-23 20:11:29 · 694 阅读 · 2 评论 -
KMP算法详解加实际应用(确定不来看嘛?)
KMP,一个一言难尽的算法! 今天是5.20号,看女朋友不如KMP! (仔细体会其深刻含义!!!我可没说这是拼音 ) 好了,进入正题~ Knuth-Morris-Pratt 字符串查找算法,简称为 KMP算法,常用于在一个文本串 S 内查找一个模式串 P 的出现位置 KMP算法 的操作流程如下: 假设现在文本串 t 匹配到 i 位置,模式串 p 匹配到 j 位置 如果 j = -1,或者当前字符匹配成功(即 t[i] == p[j] ),都令 i++,j++,继续匹配下一个字符; 如果 j != -1,且当原创 2020-05-20 18:06:36 · 1040 阅读 · 3 评论