BFS遍历图代码
2015-07-13 19:22
176 查看
#include<iostream> #include<vector> #include<queue> #include<cstring> #include<cstdio> using namespace std; const int maxn = 1005; vector<int> vec[maxn]; queue<int> que; bool vis[maxn]; int step[maxn]; void BFS(int s) { int i; int ele,ele1; que.push(s); vis[s] = true; while(!que.empty()) { ele = que.front(); que.pop(); int len = vec[ele].size(); //cout<<len<<endl; for(i=0;i<len;i++) { ele1 = vec[ele][i]; if(vis[ele1] == false) { que.push(ele1); vis[ele1] = true; step[ele1] = step[ele] + 1; //cout<<step[ele1]<<endl; cout<<"ele1:"<<ele1<<" "<<"step:"<<step[ele1]<<endl; } } } } int main() { int m,n; int start; //freopen("1.txt","r",stdin); cin>>start; while(cin>>m>>n && m != 0 && n != 0) { vec[m].push_back(n); vec .push_back(m); } memset(vis,false,sizeof(vis)); memset(step,0,sizeof(step)); BFS(start); //print_path(); return 0; }
相关文章推荐
- python中的xlrd 和xlwt资料集合
- Go1.5 改进摘要
- C++中浅拷贝和深拷贝问题
- java实现顺序链表
- Two output file names resolved to the same output path
- [leetcode-27]Remove Element(C语言)
- algorithm之改变序列算法--待解决
- java学习之旅61--数组_多维数组_练习_矩阵运算
- C语言中关键字auto、static、register、const、volatile、extern的作用
- python namedtuple
- 【leetcode-90】SubsetII(java 语言)
- c++ primer读书笔记-第十四章 重载操作符与转换
- Matlab用代码关联m文件
- Hadoop编程实例之MapReduce
- php多文件上传 对应的curl语法
- Python--处理文献中单词,统计个数
- 依赖倒转原则--针对接口编程
- Hadoop编程实现之HDFS
- Java-异常总结
- C与C++中定义结构体的不同方式