2018.3.26 1501 二叉樹最大寬度和高度
阿新 • • 發佈:2018-03-26
一個空格 post 12px 一行 個數 padding pac ide urn 題目描述
給出一個二叉樹,輸出它的最大寬度和高度。
輸入描述
第一行一個整數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;
}
2018.3.26 1501 二叉樹最大寬度和高度