博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图的遍历(bfs+dfs)模板
阅读量:4355 次
发布时间:2019-06-07

本文共 1685 字,大约阅读时间需要 5 分钟。

bfs

1 #include
2 #include
3 #include
4 using namespace std; 5 queue
q; 6 int map[1001][1001]; 7 int vis[1001]; 8 int n,m; 9 void bfs(int p)10 {11 q.push(p);12 vis[p]=1;13 printf("%c-->",char(q.front()+64));14 while(q.size()!=0)15 { 16 int k=q.front();17 q.pop();18 for(int i=1;i<=n;i++)19 {20 21 if(vis[i]==0&&map[k][i]==1)22 {23 printf("%c-->",char(i+64));24 //q.pop();25 q.push(i);26 vis[i]=1;27 }28 }29 }30 }31 int main()32 {33 34 scanf("%d%d",&n,&m);35 for(int i=1;i<=m;i++)36 {37 char x,y;38 //scanf("\n%d %d",&x,&y);39 cin>>x>>y;40 x=x-64;41 y=y-64;42 map[x][y]=map[y][x]=1;43 }44 bfs(1);45 return 0;46 }

dfs

1 #include
2 #include
3 using namespace std; 4 int map[1001][1001]; 5 int vis[1001]; 6 int n,m; 7 void dfs(int p) 8 { 9 vis[p]=1;10 printf("%c --> ",char(p+64));11 for(int i=1;i<=n;i++)12 {13 if(vis[i]==0&&map[p][i]==1)14 {15 16 dfs(i);17 }18 //else19 //return ;20 }21 }22 int main()23 {24 25 scanf("%d%d",&n,&m);26 for(int i=1;i<=m;i++)27 {28 char x;29 char y;30 scanf("\n%c %c",&x,&y);31 //cin>>x>>y;32 x=x-64;33 y=y-64;34 map[x][y]=map[y][x]=1;35 }36 dfs(1);37 return 0;38 }

 

转载于:https://www.cnblogs.com/zwfymqz/p/6682504.html

你可能感兴趣的文章
珍惜当下(转)
查看>>
免费iOS第三方推送工具Urban Airship使用教程
查看>>
用python进行数据分析--引言
查看>>
springboot详解
查看>>
android 真机配置
查看>>
Python字符串格式化
查看>>
Spark RDD和DataSet与DataFrame转换成RDD
查看>>
香菇鸡汤
查看>>
C/S模型之TCP群聊
查看>>
STL之优先级队列priority_queue
查看>>
STL之List容器
查看>>
codefoeces 610 C
查看>>
21 调整数组的顺序使奇数位于偶数的前面 (第3章 高质量的代码-代码的完整性)...
查看>>
线段树 HDU 2871
查看>>
javax.security.auth.login.LoginException: Error during resolve 异常
查看>>
poj2524
查看>>
hdu 1106 排序
查看>>
在Linux Mint13下编译安装mono运行时
查看>>
win下 bundle install 显示json安装错误解决办法
查看>>
IOS 限制输入特定字符的方法
查看>>