完全二叉树中序遍历的结果是顺序的,所以只需要中序遍历,按顺序放置即可
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2000+5;
int Level[N];
int len=0;
void lev(int a[],int x,int n)
{
if(x > n) return;
lev(a,x*2,n);
Level[x]=a[len++];
lev(a,x*2+1,n);
}
int main()
{
int n;
int i;
cin>>n;
int a[n];
len=0;
for(i=0; i<n; i++)
cin>>a[i];
sort(a,a+n);
lev(a,1,n);
for(i=1; i<=n-1; i++)
cout<<Level[i]<<" ";
cout<<Level[n]<<endl;
}
2.根据完全二叉树的特点
即可直接确定左子树个数,则根结点即可确定,递归即可

本文介绍了一种利用完全二叉树的特性进行中序遍历的方法,通过先排序后递归放置的方式,实现了节点的有序遍历。代码示例展示了如何使用C++实现这一过程。
684

被折叠的 条评论
为什么被折叠?



