找树的根和孩子

【问题描述】
  给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子
【输入格式】
  第一行:n(结点数<=100),m(边数<=200)。 以下m行;每行两个结点x和y,表示y是x的孩子(x,y<=1000)。
【输出格式】
  第一行:树根:root。 第二行:孩子最多的结点max。第三行:max的孩子。
【输入样例】
  8 7
  4 1
  4 2
  1 3
  1 5
  2 6
  2 7
  2 8
【输出样例】
  4
  2
  6 7 8

【参考程序】

复制代码
 1 #include<iostream>
 2 using namespace std;
 3 int n,m,tree[101]={0};
 4 int main()
 5 {
 6   int i,x,y,root,maxroot,sum=0,j,Max=0;
 7   cin>>n>>m;
 8   for(i=1;i<=m;i++)
 9   {
10     cin>>x>>y;
11     tree[y]=x;
12   }
13   for(i=1;i<=n;i++)                     //找出树根 
14      if(tree[i]==0)
15      {
16         root=i;break;
17      }
18   for(i=1;i<=n;i++)                     //找孩子最多的结点
19   {
20      sum=0; 
21      for(j=1;j<=n;j++)
22         if(tree[j]==i) sum++;
23      if(sum>Max)
24      {
25          Max=sum;maxroot=i;
26      }
27   }    
28   cout<<root<<endl<<maxroot<<endl;  
29   for(i=1;i<=n;i++)
30      if(tree[i]==maxroot) cout<<i<<" ";
31   return 0; 
32 }
复制代码

 

posted on   华山青竹  阅读(725)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2016-07-15 并查集详解 (转)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示