图的广度优先遍历邻接矩阵
2016-07-24 11:50
155 查看
#include <iostream> using namespace std; const int INF = 9999; int main() { int i,j,n,m,a,b,cur,book[101] = {0},e[101][101]; int qu[101],tail,head; cin>>n>>m; //初始化二维矩阵 for(i = 1;i <= n;i++) { for(j = 1;j <= n;j++) { if(i == j) { e[i][j] = 0; } else { e[i][j] = INF; } } } //读入顶点之间的边 for(i = 1;i <= m;i++) { cin>>a>>b; e[a][b] = 1; e[b][a] = 1; } //队列初始化 head = 1; tail = 1; //从1号顶点出发,将1号队列加入队列 qu[tail] = 1; tail++; book[1] = 1; //当队列不为空的时候循环 while(head < tail) { cur = qu[head]; for(i = 1;i <= n;i++) { if(e[cur][i] == 1 && book[i] == 0) { qu[tail] = i; tail++; book[i] = 1; } } //如果tail大于n,则表明所有的顶点已经被访问过了 if(tail > n) { break; } head++; } for(i = 1;i < tail;i++) { cout<<qu[i]<<" "; } cout<<endl; return 0; }
相关文章推荐
- 工作周报2016.7.18-2016.7.24
- C/C++求职宝典21个重点笔记(常考笔试面试点)
- 桶排序
- HDU 5735 Born Slippy
- 定时器AlarmManager使用
- HDU-5750 Dertouzos
- python环境搭建
- 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
- JS空数组的判断
- Python开发环境配置
- 使用u盘安装os x系统
- CSS学习笔记:链接的样式声明顺序
- C++ STL:list用法详解
- 【杭电1052】Tian Ji -- The Horse Racing
- Scala 不可变 List 方法
- Java集合框架(上)
- 覆盖索引
- 同余定理之杭电1212_Big Number
- POJ 1861 Network .
- linux date命令