树的高度

标签: 二叉树的高度
2人阅读 评论(0) 收藏 举报
分类:

题目描述

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

输入描述:

输入的第一行表示节点的个数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;
}




查看评论

关于树的深度和高度的计算

关于树的深度和高度的计算,我看到两个不同的说法,它们的区别就在于到底是从0开始计算还是从1开始计算。(网上的和算法题偏向说法二,如果有能找到更加权威的解答望不吝赐教)说法一 《数据结构与算法分析:C...
  • byamao1
  • byamao1
  • 2016-11-19 16:25:40
  • 2191

树的高度与深度

网上各种分析都是很乱的,造成很多误导,我来自己简单疏导一下: 树的高度:从结点x向下到某个叶结点最长简单路径中边的条数。 树的深度:树根下中所有分支结点层数的最大值。(一般以根节点深度层数为0) ...
  • qinziqiao
  • qinziqiao
  • 2017-04-10 23:07:42
  • 2359

树的层数深度及高度

首先要介绍树的层数:顶点的层数是从根到该顶点唯一通路的长度。 树的深度 = 层数 树的高度 = 层数 + 1 就拿这棵树来说                             ...
  • u013080641
  • u013080641
  • 2013-12-08 11:44:25
  • 5679

B-树的高度及性能分析

     B-树上操作的时间通常由存取磁盘的时间和CPU计算时间这两部分构成。B-树上大部分基本操作所需访问盘的次数均取决于树高h。关键字总数相同的情况下B-树的高度越小,磁盘I/O所花的时间越少。 ...
  • lane3010
  • lane3010
  • 2007-08-01 21:59:00
  • 1307

数据结构->树:树的深度与高度

树的高度与sh The depth of a node is the number of edges from the node to the tree's root node. A ...
  • jujulia_318
  • jujulia_318
  • 2014-06-09 13:21:38
  • 805

树的高度和深度的区别

对于树的基本概念上理解,对于才接触数据结构的人来说,树的高度和深度是一个容易混淆的知识点,现解释如下: 1.高度 对于高度的理解,我们不管他数据结构什么什么知识,就拿楼房来说,假如一个人提问:楼房...
  • Fanpei_moukoy
  • Fanpei_moukoy
  • 2014-04-16 10:47:36
  • 33524

[C++日常小题] 计算二叉查找树的高度

Description给定一个二叉查找树,要求计算其高度,每个二叉查找树将给出先序与中序的遍历。例如:一个二叉查找树其先序遍历为:16, 10, 4, 15, 23 ; 中序遍历为 4, 10, 15...
  • Elliott_Yoho
  • Elliott_Yoho
  • 2017-01-01 10:42:44
  • 990

树的高度,深度,层数

申明:本文高度,深度基数为1,但是在《数据结构与算法分析:java语言描述》这本书上,高度,深度的基数为0;两种记法都没有错,都可以用来描述树的性质,只需要标注(>0)或者(>=0)做一个区分和解释即...
  • bwh12398
  • bwh12398
  • 2017-09-17 17:33:50
  • 371

求二叉树高度(更新:用C++14编写)

因为树是递归定义的,所以用递归算法很方便。 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; stru...
  • Justme0
  • Justme0
  • 2012-06-27 00:29:22
  • 13685

判断一棵树是否为平衡树及求树的高度

什么是平衡树?所谓平衡树,就是树的任意结点的左子树和右子树的高度之差的绝对值不超过1。 所以判断一棵树是否为二叉树,不难想到可以先求出树的高度,再求出左右子树的高度差来判断,那么就想先求树的高度。 求...
  • zhangyi_ZY
  • zhangyi_ZY
  • 2017-07-24 17:41:35
  • 695
    个人资料
    等级:
    访问量: 1188
    积分: 401
    排名: 12万+
    博客专栏
    最新评论