完全二叉树的层序遍历
完全二叉树采用顺序存储方式,如果有左孩子,则编号为2i,如果有右孩子,编号为2i+1,然后按照后序遍历的方式(左右根),进行输入,最后顺序输出即可。
AC代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int tr[N], n;
void create(int u)
{
if(u > n) return ;
create(u * 2); //左子树
create(u * 2 + 1); //右子树
cin >> tr[u];
}
int main()
{
cin >> n;
create(1);
for(int i = 1; i <= n; i ++ )
{
cout << tr[i];
if(i != n) cout << " ";
}
return 0;
}