#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,ans=1,b[N];
struct node{
int date,l,r;
}tree[N];
void dfs(int x){
if(x>n) return;
if(tree[x].l) dfs(tree[x].l);
if(tree[x].r) dfs(tree[x].r);
scanf("%d",&tree[x].date);
}//直接按完全二叉树的后续序列进行赋值操作
int main()
{
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++){//建立完全二叉树
if(2*i<=n) tree[i].l=2*i;
if(2*i+1<=n) tree[i].r=2*i+1;
}
dfs(1);//初始节点
for(i=1;i<=n;i++){
if(i!=1) printf(" ");
printf("%d",tree[i].date);
}//层序打印就没了
return 0;
}
L2-035 完全二叉树的层序遍历
最新推荐文章于 2024-04-03 11:27:02 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)