首页 > 其他 > 详细

二叉树根据层次遍历建树

时间:2020-07-10 22:24:47      阅读:126      评论:0      收藏:0      [点我收藏+]

前提是将二叉树扩充为完全二叉树

技术分享图片
typedef struct bitree *Bnode;
struct bitree{
    int data;
    Bnode left,right;
};
Bnode CreateTree(){
    Bnode q[105];
    int f=1,r=0;
    int num;
    Bnode root=NULL,s;
    while(scanf("%d",&num)&&num!=-1){
        if(num==0)s=NULL;
        else{
            s=(Bnode)malloc(sizeof(bitree));
            s->data=num;s->left=NULL;s->right=NULL;
        }
        q[++r]=s;
        if(r==1)root=s;
        else{
            if(q[f]&&s){
                if(r%2==0)
                    q[f]->left=s;
                else
                    q[f]->right=s;
            }
            if(r%2==1)f++;
        }
    }

    return root;
}
View Code

 

二叉树根据层次遍历建树

原文:https://www.cnblogs.com/xyfs99/p/13281312.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!