zoukankan      html  css  js  c++  java
  • 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 ", wide, deep);
        scanf("%d", &kk);
        return 0;
     
    }
     
     
     
     
     
     
     
  • 相关阅读:
    QT学习:08 QString
    QT学习:07 字符编码的问题
    QT学习:06 常用的全局变量与宏定义
    QT学习:05 元对象系统
    QT学习:04 代码化的界面绘制
    QT学习:03 信号与槽
    QT学习:02 界面布局管理
    HTTP权威指南之URL与资源
    系统安装注意事项
    HTTP权威指南之web基础
  • 原文地址:https://www.cnblogs.com/elliottc/p/8648960.html
Copyright © 2011-2022 走看看