关闭

树的子结构

108人阅读 评论(0) 收藏 举报
分类:

面试题目:输入两颗二叉树A,B,判断B是不是A的子结构;

先找到B根节点对应的A的节点,在判断是否相同。

主要部分代码:

bool ifTheSameTree(BiTree &t1,BiTree &t2)
{
    if (t2 == NULL)return true;//B树为空,肯定是相同的树
    if(t1 == NULL)return false;
    if (t1->value!=t2->value)return false;//节点不同,不是
    else
    {
        return ifTheSameTree(t1->lchild,t2->lchild) & ifTheSameTree(t1->rchild,t2->rchild);//左右均为true返回true
    }
}
bool isSubBinTree(BiTree &t1,BiTree &t2)
{
    bool result = false;
    if(t1 != NULL && t2 != NULL)
    {
        if (t1->value == t2->value)//根节点相同,就判断A,B树是否一样
        {
            result = ifTheSameTree(t1,t2);
        }
        if(!result)result = isSubBinTree(t1->lchild,t2);//判断左子树
        if (!result) result = isSubBinTree(t1->rchild,t2);//判断右子树
    }
    return result;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:26982次
    • 积分:2742
    • 等级:
    • 排名:第13102名
    • 原创:258篇
    • 转载:18篇
    • 译文:0篇
    • 评论:0条
    文章分类
    最新评论