危险区域吧 关注:5贴子:366
  • 1回复贴,共1

【c++】找树根和孩子

取消只看楼主收藏回复

#include<iostream>
#include<cstdlib>
using namespace std;
int n,m,tree[101]={0};
int main()
{
int i,x,y,root,maxroot,sum=0,j,Max=0;
cout<<"How many nodes do you want?(<=100) : ";
cin>>n; //结点数
cout<<"What size do you want?(<=200) : ";
cin>>m; //边数
cout<<"Please input each node : "<<endl;
for(i=1;i<=m;i++)
{
cin>>x>>y;
tree[y]=x;
}
for(i=1;i<=n;i++) //找出树根
if(tree[i]==0)
{
root=i;
break;
}
for(i=1;i<=n;i++) //找出孩子最多的结点
{
sum=0;
for(j=1;j<=n;j++)
if(tree[j]==i)sum++;
if(sum>Max)
{
Max=sum;
maxroot=i;
}
}
cout<<"root is : "<<root<<endl<<"maxroot is : "<<maxroot<<endl;
for(i=1;i<=n;i++)
if(tree[i]==maxroot)cout<<"maxroot's children are : "<<i<<"\n";
system("pause");
return 0;
}


1楼2013-12-17 21:24回复


    2楼2013-12-17 21:25
    回复