zoukankan      html  css  js  c++  java
  • 找树根和孩子

    •【例3-1】找树根和孩子
    【问题描述】
      给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子
    【输入格式】
      第一行:n(结点数<=100),m(边数<=200)。   
        以下m行;每行两个结点x和y,
        表示y是x的孩子(x,y<=1000)。
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int tree[101];
    int main()
    {
        int n,_,m,x,y,root,maxroot,sum=0,Max=0;
        cin>>n>>m;
        for(int i=1;i<=m;i++)
        {
            cin>>x>>y;
            tree[y]=x;
        }
        for(int i=1;i<=m;i++)
        {
            if(tree[i]==0)
            {
                root=i;
                break;
            }
        }
        for(int i=1;i<=n;i++)
        {
            sum=0;
            for(int j=1;j<=n;j++)
            {
                if(tree[j]==i)
                sum++;
            }
            if(sum>Max)
            {
                Max=sum;
                maxroot=i;
            }
        }
        cout<<root<<endl<<maxroot<<endl;
        for(int i=1;i<=n;i++)
        {
            if(tree[i]==maxroot)
            printf("%d ",i);
        }
        return 0;
    }
    【输出格式】
      第一行:树根:root。   
        第二行:孩子最多的结点max。   
        第三行:max的孩子。
  • 相关阅读:
    中断
    按键
    uart stdio的移植1
    串口通信实战
    串口通信相关知识详解
    SOC时钟
    arm-linux-ld: cannot find sdram_init.o
    SDRAM初始化
    代码重定位实战
    s5pv210的启动过程
  • 原文地址:https://www.cnblogs.com/sssy/p/6640175.html
Copyright © 2011-2022 走看看