L2中关于树的遍历的问题是真的弱爆了。。。
这个题看到一个很有趣的题解。
首先,这道题给你树的结点的个数,给你树的后序遍历顺序,然后求层次遍历,同时这是一棵完美二叉树。
由于树是递归实现的,看create函数中看cin的位置,给你前序遍历求层次,cin放在两个递归前面,给你中序遍历求层次,cin放在两递归中间,后序就放后边,即可得出tree[]。
#include<bits/stdc++.h>
using namespace std;
int n,tree[31];
void create(int i)
{
if(i>n) return;
//cin >> tree[i];
create(2*i);
//cin >> tree[i];
create(2*i+1);
cin >> tree[i];
}
int main()
{
cin >> n;
create(1);
for(int i=1;i<=n;i++)
if(i==1)
cout << tree[i];
else
cout <<" "<< tree[i];
return 0;
}