ZBLOG

#include #include #include #define ERROR 0 #define OK 1 #define FALSE -1 #define TRUE 1 typedef struct Node { char data; struct Node * LChild; struct Node * RChild; }BitNode, * BiTree; ...

void CreateBiTree(BiTree *bt) {

char ch;
scanf("%c", &ch);
getchar();
if (ch == '.')
    *bt = NULL;//空节点
else
{
    *bt = (BitNode *)malloc(sizeof(BitNode));
    (*bt)->data = ch;//根节点
    CreateBiTree(&((*bt)->LChild));//递归创建左子树
    CreateBiTree(&((*bt)->RChild));//递归创建右子树
}

}

int PreOrder(BiTree root1, BiTree root2) {

if (root1 == NULL && root2 == NULL)//两个树均为空的情况,认为是相等的
    return TRUE;
else if (root1 != NULL && root2 != NULL)//两个树均不为空的情况
{
    if (Compare(root1->data, root2->data))//对比节点值,如果相等继续向下遍历
    {
        if (PreOrder(root1->LChild, root2->LChild) && PreOrder(root1->RChild, root2->RChild))
            return TRUE;//左右子树都相等才返回TRUE
        else
            return FALSE;
    }
    else//如果节点不相等则返回FALSE
        return FALSE;
}
else//一个为空,一个不为空,认为是不等的
    return FALSE;

}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1180

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?