PTA 7-5 完全二叉树的层序遍历
Posted 年轻人不讲码德
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PTA 7-5 完全二叉树的层序遍历相关的知识,希望对你有一定的参考价值。
完全二叉树的遍历
题目如图所示
思路
先把后序序列直接填到完全二叉树里面,然后再对这棵二叉树进行调整,使它成为符合要求的完全二叉树。调整方式:直接对这颗二叉树进行后序遍历,然后在访问结点的时候更新这个这个结点的值。
代码如下
#include<bits/stdc++.h>
using namespace std;
int t[1000];
int a[1000];//a数组用来保存二叉树的后序序列,t数组用来存树
int n,j,sum;
void tra(int x)//在对t进行后序遍历的时候更新t的值
{
if(x<=n)
{
tra(x*2);
tra(x*2+1);
t[x]=a[j];//将访问结点的语句改为更新结点
j++;
}
}
int main (void)
{
cin>>n;
j=1;//初始化指针j
for(int i=1;i<=n;i++)
{
cin>>t[i];
a[i]=t[i];
}
tra(1);
for(int i=1;i<=n;i++)
{
cout<<t[i];
if(i<n)
cout<<' ';
}
}
以上是关于PTA 7-5 完全二叉树的层序遍历的主要内容,如果未能解决你的问题,请参考以下文章