本文共 1145 字,大约阅读时间需要 3 分钟。
#include#include using namespace std;int vis[101];int a[101][101];int n,m,sum;//n个点,m条边void dfs(int s){ printf("%d ",s); sum++; if(sum==n) return; for(int i=1; i<=n; i++) { if(a[s][i]&&!vis[i]) { vis[i]=1; dfs(i); } }}void bfs(){ memset(vis,0,sizeof(vis)); queue k; for(int i=1; i<=n; i++) { if(!vis[i]) { vis[i]=1; printf("%d ",i); } k.push(i); while(!k.empty()) { int t=k.front(); k.pop(); for(int j=1; j<=n; j++) { if(!vis[j]&&(a[j][t]==1||a[t][j]==1)) { vis[j]=1; printf("%d ",j); k.push(j); } } } }}int main(){ while(scanf("%d%d",&n,&m)==2) { for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(i==j) a[i][j]=0; else a[i][j]=-1; } } int x,y; for(int i=0; i
转载地址:http://qpyzi.baihongyu.com/