信息学奥赛课课通P256,图的宽度优先遍历,我觉得书上太复杂,自己写了一遍。
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int a[N][N],h[N];
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int n,i,j,k,r,u;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
cout<<1;
for(i=2;i<=n;i++)
h[i]=1;//把h2-h8先设为1,输出节点后,把该节点设为0。
h[1]=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j] && h[j])
{
cout<<"-"<<j;
h[j]=0;
}
return 0;
}