深度优先搜索和广度优先搜索的代码实现
来源:互联网 发布:ubuntu的samba服务器 编辑:程序博客网 时间:2024/05/23 15:45
/*
DFS和BFS的代码实现
Jack Ren,Sep 15th,2015
*/
#include <string>
#include <vector>
#include <iostream>
#include <queue>
using namespace std;
typedef struct node{
int value;
node* next;
};
vector<vector<int>> adjlist;
bool visited[8];
void dfs(int v)
{
cout<<v<<endl;
visited[v] = true;
for(int i = 1;i<adjlist[v].size();i++)
if(!visited[adjlist[v][i]])
{
dfs(adjlist[v][i]);
}
}
queue<int> myQ;
void bfs(int v)
{
myQ.push(v);
visited[v] = true;
while(myQ.size()>0)
{
int h = myQ.front();
cout<<h<<endl;
visited[h] = true;
for(int i = 1;i<adjlist[h].size();i++)
{
if(!visited[adjlist[h][i]])
{
myQ.push(adjlist[h][i]);
visited[adjlist[h][i]] = true;
}
}
myQ.pop();
}
}
int main()
{
memset(visited,false,8);
adjlist.resize(8);
for(int i=0;i<8;i++)
{
adjlist[i].push_back(i);
}
adjlist[0].push_back(1);
adjlist[0].push_back(2);
adjlist[1].push_back(0);
adjlist[1].push_back(3);
adjlist[1].push_back(4);
adjlist[2].push_back(0);
adjlist[2].push_back(5);
adjlist[2].push_back(6);
adjlist[3].push_back(1);
adjlist[3].push_back(7);
adjlist[4].push_back(1);
adjlist[4].push_back(7);
adjlist[5].push_back(2);
adjlist[5].push_back(7);
adjlist[6].push_back(2);
adjlist[6].push_back(7);
adjlist[7].push_back(3);
adjlist[7].push_back(4);
adjlist[7].push_back(5);
adjlist[7].push_back(6);
cout<<"DFS sequence:"<<endl;
dfs(0);
memset(visited,false,8);
cout<<"BFS sequence:"<<endl;
bfs(0);
return 0;
}
DFS和BFS的代码实现
Jack Ren,Sep 15th,2015
*/
#include <string>
#include <vector>
#include <iostream>
#include <queue>
using namespace std;
typedef struct node{
int value;
node* next;
};
vector<vector<int>> adjlist;
bool visited[8];
void dfs(int v)
{
cout<<v<<endl;
visited[v] = true;
for(int i = 1;i<adjlist[v].size();i++)
if(!visited[adjlist[v][i]])
{
dfs(adjlist[v][i]);
}
}
queue<int> myQ;
void bfs(int v)
{
myQ.push(v);
visited[v] = true;
while(myQ.size()>0)
{
int h = myQ.front();
cout<<h<<endl;
visited[h] = true;
for(int i = 1;i<adjlist[h].size();i++)
{
if(!visited[adjlist[h][i]])
{
myQ.push(adjlist[h][i]);
visited[adjlist[h][i]] = true;
}
}
myQ.pop();
}
}
int main()
{
memset(visited,false,8);
adjlist.resize(8);
for(int i=0;i<8;i++)
{
adjlist[i].push_back(i);
}
adjlist[0].push_back(1);
adjlist[0].push_back(2);
adjlist[1].push_back(0);
adjlist[1].push_back(3);
adjlist[1].push_back(4);
adjlist[2].push_back(0);
adjlist[2].push_back(5);
adjlist[2].push_back(6);
adjlist[3].push_back(1);
adjlist[3].push_back(7);
adjlist[4].push_back(1);
adjlist[4].push_back(7);
adjlist[5].push_back(2);
adjlist[5].push_back(7);
adjlist[6].push_back(2);
adjlist[6].push_back(7);
adjlist[7].push_back(3);
adjlist[7].push_back(4);
adjlist[7].push_back(5);
adjlist[7].push_back(6);
cout<<"DFS sequence:"<<endl;
dfs(0);
memset(visited,false,8);
cout<<"BFS sequence:"<<endl;
bfs(0);
return 0;
}
0 0
- 深度优先搜索和广度优先搜索的代码实现
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 广度优先搜索和深度优先搜索
- 广度优先搜索和深度优先搜索
- 深度优先搜索和广度优先搜索
- 广度优先搜索和深度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- 广度优先搜索和深度优先搜索
- 深度优先搜索和广度优先搜索
- 深度优先搜索和广度优先搜索
- Java实现深度优先搜索和广度优先搜索
- 深度优先搜索、广度优先搜索的实现
- DrawText()
- 实现Singleton模式
- Lucas定理(大组合数的取模)
- PostgreSQL与MySQL比较
- liunx操作系统实现u盘的挂载和读取----redhut
- 深度优先搜索和广度优先搜索的代码实现
- 点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件
- C++虚函数与纯虚函数的区别
- 地图的相关使用(定位,地理编码,导航)
- zrclistview
- nginx配置详细说明
- SQL SERVER 截取字符串常用函数
- Unity打包成APK的一些触屏操作
- Java中一个对象的实例化过程