一個二叉樹,如果每一個層的結點數都達到最大值,則這個二叉樹就是完美二叉樹。對于深度為?D?的,有?N?個結點的二叉樹,若其結點對應于相同深度完美二叉樹的層序遍歷的前?N?個結點,這樣的樹就是完全二叉樹。
給定一棵完全二叉樹的后序遍歷,請你給出這棵樹的層序遍歷結果。
輸入格式:
輸入在第一行中給出正整數?N(≤30),即樹中結點個數。第二行給出后序遍歷序列,為?N?個不超過 100 的正整數。同一行中所有數字都以空格分隔。
輸出格式:
在一行中輸出該樹的層序遍歷序列。所有數字都以 1 個空格分隔,行首尾不得有多余空格。
輸入樣例:
8 91 71 2 34 10 15 55 18
輸出樣例:
18 34 55 71 2 10 15 91
#include <stdio.h> #include <stdlib.h> int n; int a[40]; void creatTree(int root) {if(root>n)return;creatTree(root*2);creatTree(root*2+1);scanf("%d",&a[root]); } int main() {scanf("%d",&n);creatTree(1);printf("%d",a[1]);for(int i=2;i<=n;i++)printf(" %d",a[i]);return 0; }
?