2018.3.26 1501 二叉树最大宽度和高度
生活随笔
收集整理的这篇文章主要介绍了
2018.3.26 1501 二叉树最大宽度和高度
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
题目描述 给出一个二叉树,输出它的最大宽度和高度。 输入描述 第一行一个整数n。下面n行每行有两个数,对于第i行的两个数,代表编号为i的节点所连接的两个左右儿子的编号。如果没有某个儿子为空,则为0。 输出描述 输出共一行,输出二叉树的最大宽度和高度,用一个空格隔开。 #include<stdio.h> int a[30], b[30]; //编译器行为开辟a[0] = 0 int main() { int n, l, r, k, x,kk, wide = 0, deep = 0; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d%d", &l, &r); a[l] = i; a[r] = i; //更新父节点 } for (int i = 1; i <= n; i++) { k = 1; x = a[i]; while (x != 0) { k++; //深度 x = a[x]; } b[k]++; //宽度 if (k>deep) deep = k; if (b[k]>wide) wide = b[k]; } printf("%d %d\n", wide, deep); scanf("%d", &kk); return 0; }
转载于:https://www.cnblogs.com/elliottc/p/8648960.html
总结
以上是生活随笔为你收集整理的2018.3.26 1501 二叉树最大宽度和高度的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Python_summary
- 下一篇: JAVA基础知识要点