广搜 bfs

 //bfs

 #include<iostream>
#include<cstdio>
using namespace std;
int queue[],top=,end=;
int map[][];
int vis[];
int n,m;
void bfs(int p)
{
queue[end]=p;
vis[p]=;
printf("%c -->",queue[end]+);
while(top!=end)
{
top++;
int k=queue[top];
for(int i=;i<=n;i++)
{ if(vis[i]==&&map[k][i]==)
{
printf("%c-->",i+);
queue[++end]=i;
vis[i]=;
}
}
}
}
int main()
{
char head,tail;
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
cin>>head>>tail;
head=head-;
tail=tail-;
map[head][tail]=map[tail][head]=;
}
bfs();
return ;
}

深搜 dfs

 #include<iostream>
#include<cstdio>
using namespace std;
char maps[][];
bool vis[];
int q,m;
void dfs(int a){
vis[a]=;
if(a<q)
printf("%c --> ",a+);
else printf("%c",a+);
for(int i=;i<=q;i++)
{
if(maps[a][i]==&&vis[i]==)
dfs(i);
}
}
int main()
{ char a,b;
cin>>q>>m;
for(int i=;i<=m;i++)
{
cin>>a>>b;
maps[a-][b-]=;
maps[b-][a-]=;
}
dfs();
}

Floyed

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int maps[][];
int ans;
int main()
{
memset(maps,,sizeof(maps));
int n,m;
cin>>n>>m;
int he,ta,len;
for(int i=;i<=m;i++)
{
cin>>he>>ta>>len;
maps[ta][he]=maps[he][ta]=len;
}
int x,y;
cin>>x>>y;
for(int k = ;k <= n;k++)
for(int i = ;i <= n;i++)
for(int j = ;j <= n;j++)
{
if(maps[i][j]>maps[i][k]+maps[k][j])
maps[i][j]=maps[i][k]+maps[k][j];
} printf("%d",maps[x][y]);
}

Dijkstra

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m;
const int maxn=;
int map[][],start,end;
bool vis[];
int dis[],road[],minn,k; void add(int now)
{
for(int i=;i<=n;i++)
{
dis[i]=map[now][i];
}
vis[now]=true;
dis[now]=;
for(int i=;i<=n-;i++)
{
minn=maxn;
k=now;
for(int j=;j<=n;j++)
if(vis[j]==false&&dis[j]<minn)
{
minn=dis[j];
k=j;
}
vis[k]=true;
for(int g=;g<=n;g++)
if(vis[g]==false&&dis[g]>dis[k]+map[k][g])
{
dis[g]=dis[k]+map[k][g];
}
}
printf("%d",dis[end]);
return ; }
int main()
{
memset(map,maxn,sizeof(map));
memset(vis,false,sizeof(vis));
scanf("%d%d",&n,&m);
int he,ta,len;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&he,&ta,&len);
map[ta][he]=map[he][ta]=len;
}
memset(dis,maxn,sizeof(dis));
cin>>start>>end;
add(start);
return ;
}

模板 图的遍历 bfs+dfs 图的最短路径 Floyed+Dijkstra的更多相关文章

  1. 图的遍历BFS广度优先搜索

    图的遍历BFS广度优先搜索 1. 简介 BFS(Breadth First Search,广度优先搜索,又名宽度优先搜索),与深度优先算法在一个结点"死磕到底"的思维不同,广度优先 ...

  2. 7.9模拟赛T1图的遍历(dfs)

    图的遍历(dfs) [题目描述] 对于一个有向图G来说,我们存在一个经典的遍历算法,就是DFS (深度优先搜索遍历).将G以1号点为起点进行DFS后,我们可以 得到G的一棵DFS遍历树T.就此,我们可 ...

  3. 图的遍历BFS

    图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...

  4. 图的创建和遍历(BFS/DFS)

    图的表示方法主要有邻接矩阵和邻接表.其中邻接表最为常用,因此这里便以邻接表为例介绍一下图的创建及遍历方法. 创建图用到的结构有两种:顶点及弧 struct ArcNode { int vertexIn ...

  5. 图的遍历:DFS和BFS

    图的遍历一般由两者方式:深度优先搜索(DFS),广度优先搜索(BFS),深度优先就是先访问完最深层次的数据元素,而BFS其实就是层次遍历,每一层每一层的遍历. 1.深度优先搜索(DFS) 我一贯习惯有 ...

  6. 数据结构(三十二)图的遍历(DFS、BFS)

    图的遍历和树的遍历类似.图的遍历是指从图中的某个顶点出发,对图中的所有顶点访问且仅访问一次的过程.通常有两种遍历次序方案:深度优先遍历和广度优先遍历. 一.深度优先遍历 深度优先遍历(Depth_Fi ...

  7. Kruskal和prime算法的类实现,图的遍历BFS算法。

    一.图的遍历 #include<iostream> #include<queue> #include<vector> using namespace std; in ...

  8. 图的遍历——BFS

    原创 裸一篇图的BFS遍历,直接来图: 简单介绍一下BFS遍历的过程: 以上图为例子,从0开始遍历,访问0,按大小顺序访问与0相邻的所有顶点,即先访问1,再访问2: 至此顶点0已经没有作用了,因为其本 ...

  9. 算法导论—无向图的遍历(BFS+DFS,MATLAB)

    华电北风吹 天津大学认知计算与应用重点实验室 最后改动日期:2015/8/22 无向图的存储方式有邻接矩阵,邻接链表,稀疏矩阵等. 无向图主要包括双方面内容,图的遍历和寻找联通分量. 一.无向图的遍历 ...

随机推荐

  1. TradingView学习记录

    官网:https://cn.tradingview.com   申请图表库 用本地服务器打开 二:文件目录 三:基础概念 3.1 UDF:通用数据饲料(Universal Data Feed)     ...

  2. yearProgress.vue

    <template> <div class="progressbar"> <el-progress :text-inside="true&q ...

  3. Kafka 温故(一):Kafka背景及架构介绍

    一.Kafka简介 Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,使用Scala语言编写,之后成为Apache项目的一部分.Kafka是一个分布式的,可划分的,多订阅者,冗余 ...

  4. vue-cli构建项目使用 less

    在vue-cli中构建的项目是可以使用less的,但是查看package.json可以发现,并没有less相关的插件,所以我们需要自行安装. 第一步:安装 npm install less less- ...

  5. PHP使用数据库的并发问题

    在并行系统中并发问题永远不可忽视.尽管PHP语言原生没有提供多线程机制,那并不意味着所有的操作都是线程安全的.尤其是在操作诸如订单.支付等业务系统中,更需要注意操作数据库的并发问题. 接下来我通过一个 ...

  6. 在C#中使用.NET SDK创建控制

    下载示例工程 - 8 Kb 介绍 在这篇教程中,我将使用.NET架构创建一个简单的时钟控制示例,这个控制是一个显示当前时间的时钟,我将指导读者实现秒针并显示钟点数.文章加亮处是创建这个控制的关键点,读 ...

  7. argunlar 1.0.0 【hello,world】

    <!DOCTYPE html><html lang="en" ng-app><head>    <meta charset="U ...

  8. export DataTable To Excel(C)

          static DataTable GetTable() { DataTable table = new DataTable(); // New data table. table.Colu ...

  9. C. Ayoub and Lost Array(DP)

    (又是被队友带着上分的一场--) 题目链接:http://codeforces.com/contest/1105/problem/C 题目大意:给你n,l,r.每一个数都是在l,r范围之内,然后问你这 ...

  10. MySQL删除数据后磁盘空间的释放情况【转】

    OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除 ...