广度优先搜索

来源:互联网 发布:怎样下载手机qq软件 编辑:程序博客网 时间:2024/06/05 22:34
 
#include<iostream>using namespace std;int main(){int a[10]={0};//用于标记点是否被访问过;int b[10][10];//用于表示点与点直接的联通情况;int que[10]={0};//用于存储被访问的点的顺序;int head,tail;que[1]=1;//从编号为1的顶点开始广搜;a[1]=1;int n,m,cur;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j){b[i][j]=0;}else{b[i][j]=9999;}} } for(int i=1;i<=m;i++) { int c,d; cin>>c>>d; b[c][d]=1; }  head=tail=1; tail++; while(tail<=n) { cur=que[head]; for(int i=1;i<=n;i++) { if(b[cur][i]==1&&a[i]==0)     { a[i]=1; que[tail]=i; tail++;}  } head++; } for(int i=1;i<=n;i++) { cout<<que[i]<<endl; } return 0; }

0 0
原创粉丝点击