/*
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;
}