Codevs P1501二叉树的最大宽度和高度

Posted zforw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codevs P1501二叉树的最大宽度和高度相关的知识,希望对你有一定的参考价值。

时间限制: 1 s
空间限制: 128000 KB
题目等级: 白银 Silver

点此跳转

【题目描述】

给出一个二叉树,输出它的最大宽度和高度。

【输入描述】

第一行一个整数n。
下面n行每行有两个数,对于第i行的两个数,代表编号为i的节点所连接的两个左右儿子的编号。如果没有某个儿子为空,则为0。

【输出描述】

输出共一行,输出二叉树的最大宽度和高度,用一个空格隔开。

【样例输入】

5
2 3
4 5
0 0
0 0
0 0

【样例输出】

2 3

【数据范围及提示】

n<16默认第一个是根节点

代码实现:

/*
作者:Zforw
题目:p1501二叉树最大宽度和高度
*/

#include< cstdio >
#include< iostream>
using namespace std;
int l[30],r[30],fa[30],b[30];
int main(){
int n,x,y,k,wide = 0,deep = 0 ;
cin>>n;
for(int i = 1 ; i <= n; i ++
{
cin>>l[i]>>r[i]; //储存左右孩子
fa[l[i]]=fa[r[i]]=i;; //储存其父节点
}
for(int i = 1 ; i <= n; i ++){
k = 1 ;
x = fa[i];
while(x!= 0){
k++;
x = fa[x];
}
//从下向上找,一直找到根节点,k为深度
//b[k]保存深度为k的节点的个数
b[k]++;
deep=max(deep,k);
wide=max(wide,b[k]);
}
cout<<wide<<" "<<deep;
return 0 ;
}








以上是关于Codevs P1501二叉树的最大宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

CODEVS 1501二叉树最大宽度和高度

18.2.14 codevs1501 二叉树最大宽度和高度

1501 二叉树最大宽度和高度——http://codevs.cn/problem/1501/

codevs——1501 二叉树最大宽度和高度

1501 二叉树最大宽度和高度(codevs)

codevs1501 二叉树最大宽度和高度