zoukankan      html  css  js  c++  java
  • 树的高度

    题目描述

    现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度

    输入描述:

    输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,
    下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号

    输出描述:

    输出树的高度,为一个整数
    示例1

    输入

    5
    0 1
    0 2
    1 3
    1 4
    

    输出

    3
    

    题解:

    /*声明一个数组存储深度,child位置的值为parent位置的值加一,
    然后维护全局最大值即可。引入第二个数组存储该节点的子节点数量,
    大于2不做深度判断即可。*/
    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<vector>
    using namespace std;
    vector<int> v[1005];
    int max_dep=0;
    int main(){
        int n;
        cin>>n;
        if(n<3){
            cout<<n<<endl;
            return 0;
        }
        int a,b;
        int h[1005]={},binary[1005]={};
        h[0]=1;
        for(int i=0;i<n-1;i++){
            cin>>a>>b;
            binary[a]+=1;
            if(binary[a]<3){
                h[b]=h[a]+1;
            }
            max_dep=max(max_dep,h[b]);
        }
        cout<<max_dep<<endl;
        return 0;
    }
    




  • 相关阅读:
    1、Elasticsearch教程-从入门到精通
    3、ik分词器
    2、ElasticSearch的安装
    svn操作
    2020-10
    编写第一个linux驱动
    字符设备驱动
    Linux下/dev和/sys/class的区别
    latex
    Qt
  • 原文地址:https://www.cnblogs.com/kzbin/p/9205259.html
Copyright © 2011-2022 走看看