【无标题】

【无标题】,第1张

c++数据结构与算法实验题目

比较两棵二叉树是否相等(递归算法)

template
bool BinaryTree::operator==(BinaryTree& bitree) { //6-5 比较二叉树是否相等
    if (this->root == bitree.root) { //两二叉树根地址相同
        return true;
    }
    if (this->height() != bitree.height() || this->count() != bitree.count()) 
    {
        return false;
    }

    return isEqual(this->root, bitree.root);

}
template
bool BinaryTree::isEqual(BinaryNode* p, BinaryNode* q) 
{
    if (p == NULL || q == NULL) {
        return false;
    }
    else {
        if (p->data != q->data) {
            return false;
        }
        if (p->left != NULL || q->left != NULL || q->right != NULL || p->right != NULL) {
            if (isEqual(p->left, q->left)) { //左
                return isEqual(p->right, q->right);
            }
            else {
                return false;
            }
        }

    }
    return true;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/798024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存