bfs和dfs数组实现
2017-12-19 12:50
267 查看
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int d[205][205];
int visit[205];
int Node[205];
int n;
void dfs(int x)
{
printf("%d",Node[x]);
visit[x]=1;
for(int i=0;i<n;i++){
if(!visit[i]&&d[x][i]!=0) {
dfs(i);
}
}
}
void bfs(int x)
{
memset(visit,0,sizeof(visit));
queue<int> q;
q.push(x);
visit[x]=1;
while(!q.empty()) {
int temp=q.front();
q.pop();
for(int i=0;i<n;i++){
if(!visit[i]&&d[temp][i]==1) {
visit[i]=1; q.push(i);
}
}
printf("%d",Node[temp]);
}
}
int main()
{
printf("请输入点的个数\n");
scanf("%d",&n);
memset(visit,0,sizeof(visit));
memset(d,-1,sizeof(-1));
printf("请输入点\n");
for(int i=0;i<n;i++) {
scanf("%d",&Node[i]);
}
printf("请输入边\n");
while(1) {
int u,v;
scanf("%d%d",&u,&v);
if(u==-1&&v==-1) break;
d[u][v]=1; d[v][u]=1;
}
printf("dfs");
dfs(0);
printf("\n");
printf("bfs");
bfs(0);
}
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int d[205][205];
int visit[205];
int Node[205];
int n;
void dfs(int x)
{
printf("%d",Node[x]);
visit[x]=1;
for(int i=0;i<n;i++){
if(!visit[i]&&d[x][i]!=0) {
dfs(i);
}
}
}
void bfs(int x)
{
memset(visit,0,sizeof(visit));
queue<int> q;
q.push(x);
visit[x]=1;
while(!q.empty()) {
int temp=q.front();
q.pop();
for(int i=0;i<n;i++){
if(!visit[i]&&d[temp][i]==1) {
visit[i]=1; q.push(i);
}
}
printf("%d",Node[temp]);
}
}
int main()
{
printf("请输入点的个数\n");
scanf("%d",&n);
memset(visit,0,sizeof(visit));
memset(d,-1,sizeof(-1));
printf("请输入点\n");
for(int i=0;i<n;i++) {
scanf("%d",&Node[i]);
}
printf("请输入边\n");
while(1) {
int u,v;
scanf("%d%d",&u,&v);
if(u==-1&&v==-1) break;
d[u][v]=1; d[v][u]=1;
}
printf("dfs");
dfs(0);
printf("\n");
printf("bfs");
bfs(0);
}
相关文章推荐
- 图的遍历算法实现DFS,BFS
- DFS与BFS的代码实现
- DFS和BFS链式前向星的实现
- java版 图的邻接表、邻接矩阵、BFS、DFS 实现
- BFS和DFS的差别,BFS实现迷宫最短路径
- C语言实现图的邻接矩阵和BFS DFS
- 删除实现图的构造、DFS、BFS 以及图的删除实现
- 图论算法——基于的java实现(dijkstra,bfs,dfs,floyd)
- 编译原理 NFA_DFA代码实现 bfs+dfs+状态压缩 伪代码
- 第十四篇:自己动手实现图的BFS和DFS(附完整源码)
- 数据结构——图常用算法实现(DFS,BFS,最小生成树,最短路径,拓扑序列)
- 【数据结构】Java实现图的DFS和BFS
- 自己动手实现图的BFS和DFS(附完整源码)转
- 数据结构实验3(图的DFS和BFS实现)
- (番外)使用DFS和BFS实现拓扑排序
- Hihocoder #1121 二分图一•二分图判定( bfs或者dfs搜索实现 搜索的过程中进行 节点标记 *【模板】)
- BFS & DFS(Java实现)
- 无向图的DFS和BFS算法实现
- 第七章 图(邻接矩阵和邻接表建立图并实现DFS、BFS)
- 图的BFS、DFS算法实现