这是我的代码: 建树不完全??:
#include<bits/stdc++.h>
using namespace std;
struct TreeNode {
int r=0,l=0,da,dept=0,va=0;
} Tree[300020];
int n,treedept;
void creat(int now,int fa) {
if(now>n)
return;
else {
Tree[now].dept=Tree[fa].dept+1;
treedept=max(treedept,Tree[now].dept);
Tree[now].l=now<<1;
creat(now<<1,now);
Tree[now].r=(now<<1)+1;
creat((now<<1)+1,now);
}
}
void PostOrder(int now) {
if(Tree[now].l!=0)
PostOrder(Tree[now].l);
if(Tree[now].r!=0)
PostOrder(Tree[now].r);
cout<<Tree[now].va<<endl;
}
int main() {
cin>>n;
for(int i=1; i<=n; i++)
cin>>Tree[i].va;
creat(1,0);
cout<<"deep="<<treedept<<endl;
PostOrder(1);
return 0;
}