1. 程式人生 > >2018.3.26 1501 二叉樹最大寬度和高度

2018.3.26 1501 二叉樹最大寬度和高度

一個空格 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 二叉樹最大寬度和高度