广搜 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. nova-api源码分析(APP的调用)

    调用APIRouter的 __call__函数 nova/wsgi.py class Router(object): def __init__(self, mapper): self.map = ma ...

  2. bzoj千题计划268:bzoj3131: [Sdoi2013]淘金

    http://www.lydsy.com/JudgeOnline/problem.php?id=3131 如果已知 s[i]=j 表示有j个<=n数的数码乘积=i 那么就会有 s[a1]*s[a ...

  3. 流媒体服务器之————EasyDarwin开源流媒体服务器:编译、配置、部署

    源码下载地址:https://github.com/EasyDarwin/EasyDarwin/archive/v7.0.5.zip 查看 Ubuntu 的版本号 sudo lsb_release - ...

  4. python学习笔记5--加密模块hashlib

    import hashlib # md5 ybm_pwd='yuanbapqingsdfs234FF234HF@F' # m = hashlib.md5() # bytes_ybq = ybm_pwd ...

  5. Sublime Text 3 绿色汉化版 x64

    之前做了<Sublime Text 2 绿色汉化版 x64>,这些天抽空做了下 ST3 的汉化.. 果然我没有任何理由爱上 ST3,不仅pojie麻烦,而且汉化更麻烦,菜单字符长度做了限制 ...

  6. [整理]ASP.NET MVC 5

    1.入门 1.1官方资料 http://www.asp.net/mvc/overview/getting-started/introduction/getting-started 疑问: startu ...

  7. HTML5 中 Geolocation 获取地理位置的原理是什么?

    http://www.zhihu.com/question/20473051?sort=created geolocation的位置信息来源包括GPS.IP地址.RFID.WIFI和蓝牙的MAC地址. ...

  8. 2016-2017-2 20155309 南皓芯java第六周学习总结

    教材内容详解 这一次主要学习的是第十章与第十一章的内容.主要讲述了串流,字符处理和线程以及并行API. 输入输出 串流:Java中的数据有来源(source)和目的地(destination),衔接两 ...

  9. 移动option标签

    <%@ page language="java" pageEncoding="UTF-8"%> <%@taglib uri="/st ...

  10. imperva 更改agent的注册密码

    imperva agent 在注册到网关的时候显示账号密码错误 如下图 这是一个数据库审计的设备由于当初最开始实施的时候并不是我安装的,所以账号密码我也不清楚,客户留的账号密码也不确定.因此导致账号密 ...