• 求叶子节点


    给出一棵n个节点的树,节点编号为1-n(根节点编号为1),求这棵树叶子结点的数量。

    例如:

    1─2─4─5
    └─3

    其中3和5是叶子节点,输出2。

    Input第一行:1个数n(1 < n <= 1000),表示树的节点数量。 后面n-1行:每行2个数x y,表示节点x是节点y的父节点(1 <= x, y <= n)。Output输出1个数,表示这棵树有多少个叶子节点。Sample Input

    5
    1 2
    1 3
    2 4
    4 5

    Sample Output

    2

    有多种解法
    一:假设全为叶子节点,数组记录不是叶子节点,相减即可
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1010;
    int a[maxn];
    int main()
    {
        int n,x,y,sum;
        memset(a,0,sizeof(a));
        cin>>n;
        sum=0;
        for(int i=1;i<n;i++)
        {
            cin>>x>>y;
            if(a[x]==0)
            {
                a[x]++;
                sum++;
            }
        }
        cout<<n-sum<<endl;
        return 0;
     } 

    二:根据图的存储,行为出度,列为入度,

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1010;
    bool a[maxn][maxn];
    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<n;i++)
        {
            int x,y;
            cin>>x>>y;
            a[x][y]=1;
        }
        int cnt=0;
        for(int i=1;i<n;i++)
        {
            bool flag=0;
            for(int j=1;j<n;j++)
                if(a[i][j]) flag=1;
            if(flag==0) cnt++;
        }
        cout<<cnt<<endl;
        return 0;
    }
  • 相关阅读:
    __name__在调用时的区别
    Python内置模块--os模块的使用
    查询mysql 表的元数据信息
    nfs服务搭建
    jvm参数设置
    spring boot 集成 beetl
    spring boot 集成 swagger2 四部曲
    JavaScript中的this关键字
    jQuery 基础事件
    jQuery 表单选择器
  • 原文地址:https://www.cnblogs.com/ylrwj/p/12298561.html
Copyright © 2020-2023  润新知