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 完全二叉树的层序遍历的主要内容,如果未能解决你的问题,请参考以下文章

PTA 7-5 完全二叉树的层序遍历

PTA 7-5 完全二叉树的层序遍历

LeetCode二叉树的层序遍历

LeetCode二叉树的层序遍历

2021-4-9天梯赛补题(完全二叉树的层序遍历)

NC 15 二叉树的层序遍历