#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<set>
#include<string>
using namespace std;
vector<int>old[1001];
vector<int>now[1001];
int vis[1001];
void change(int x)
{
int i;
vis[x]=1;
for(i=0;i<old[x].size();i++)
{
if(vis[old[x][i]])continue;
now[x].push_back(old[x][i]);
change(old[x][i]);
}
}
int main()
{
int i,n,j;
int a,b;
while(~scanf("%d",&n))
{
memset(vis,0,sizeof(vis));
for(i=0;i<=n;i++)
{
old[i].clear();
now[i].clear();
}
for(i=1; i<n; i++)
{
scanf("%d%d",&a,&b);
old[a].push_back(b);
old[b].push_back(a);
}
change(1);
for(i=1;i<=n;i++)
{
printf("%d的子节点为: ",i);
for(j=0;j<now[i].size();j++)
{
printf("%d ",now[i][j]);
}
cout<<endl;
}
}
return 0;
}
自由树转化为有根树
最新推荐文章于 2022-02-09 16:57:35 发布