码迷,mamicode.com
首页 > 其他好文 > 详细

L2-035 完全二叉树的层序遍历 (25 分)

时间:2021-04-21 12:54:57      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:dfs   完全   二叉树   end   const   turn   pause   lin   out   

根据完全二叉树的性质(编号为\(u\)的节点的左儿子编号为\(u*2\),右儿子编号为\(u*2+1\)),并利用后序遍历进行递归建树。

\(level[i]\)存储编号为\(i\)的节点的值。

const int N=35;
int post[N];
int level[N];
int n;
int k;

void dfs(int u)
{
    if(u*2 <=n)
        dfs(u*2);
    if(u*2+1 <=n)
        dfs(u*2+1);
    level[u]=post[++k];
}

int main()
{
    cin>>n;

    for(int i=1;i<=n;i++) cin>>post[i];

    dfs(1);

    for(int i=1;i<=n;i++)
        if(i > 1) cout<<‘ ‘<<level[i];
        else cout<<level[i];
    cout<<endl;
    //system("pause");
    return 0;
}

L2-035 完全二叉树的层序遍历 (25 分)

标签:dfs   完全   二叉树   end   const   turn   pause   lin   out   

原文地址:https://www.cnblogs.com/fxh0707/p/14681746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!