首页 > 其他 > 详细

树与二叉树操作(二)

时间:2019-10-06 22:09:32      阅读:89      评论:0      收藏:0      [点我收藏+]

交换所有节点的左右子树

void swaptree(BiTree &T){
    BiTree temp;
    if(T){
        swaptree(T->lchild);
        swaptree(T->rchild);
        temp=T->lchild;
        T->lchild=T->rchild;
        T->rchild=temp;
    }
}

判断两个树是否相似(只有根节点或者是为空)

int similartree(BiTree &T1,BiTree &T2){
    int s1,s2;
    if(T1==NULL&&T2==NULL){
        return 1;
    }
    if(T1==NULL||T2==NULL){
        return 0;
    }
    s1=similartree(T1->lchild,T2->rchild);
    s2=similartree(T2->lchild,T2->rchild);
    return s1*s2;
}

将给定的表达式树转化为等价的中缀表达式

void BitreeToExp(BiTree &T,int depth){
    if(T==NULL) return;
    if(T->lchild==NULL&&T->rchild==NULL){
        cout<<T->data;//输出操作数
    }
    else{
        if(depth>1){cout<<(;}
        BitreeToExp(T->lchild,depth+1);
        cout<<T->data;//输出操作符
        BitreeToExp(T->rchild,depth+1);
        if(depth>1){cout<<);}//若有一层子表达式,则增加一成括号
    }
}
void BitreeToE(BiTree &T){
    BitreeToExp(T,1);
}

 

树与二叉树操作(二)

原文:https://www.cnblogs.com/Yshun/p/11628497.html

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