c_cpp C ++中的二进制树,用于测试两个二叉树是否彼此相等。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C ++中的二进制树,用于测试两个二叉树是否彼此相等。相关的知识,希望对你有一定的参考价值。

#include <iostream>

template<class T>
class BinaryNode {
public:
    BinaryNode(const T& val,
               BinaryNode<T>* left = nullptr,
               BinaryNode<T>* right = nullptr): _value(val), _left(left), _right(right)
    {
        
    }
    ~BinaryNode() {
        delete _left;
        delete _right;
    }
    
    const T& getValue(void) const {
        return _value;
    }
    
    
    void setRight(BinaryNode* node) {
        _right = node;
    }
    BinaryNode<T>* getRight(void) const {
        return _right;
    }
    void setLeft(BinaryNode* node) {
        _left = node;
    }
    BinaryNode<T>* getLeft(void) const {
        return _left;
    }
    
    bool operator==(const BinaryNode<T>& other) const {
        return _value == other.getValue() &&
               _left == other.getLeft() &&
               _right == other.getRight();
    }
private:
    T _value;
    BinaryNode<T>* _left;
    BinaryNode<T>* _right;
};

// To execute C++, please define "int main()"
int main(int argc, const char** argv) {
    BinaryNode<int>* a = new BinaryNode(3);
    BinaryNode<int>* b = new BinaryNode(3);
    BinaryNode<int>* c = new BinaryNode(6);
    b->setRight(c);
    a->setRight(c);
    std::cout << (*a == *b) << std::endl;
  return 0;
}

以上是关于c_cpp C ++中的二进制树,用于测试两个二叉树是否彼此相等。的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C语言中的二叉搜索树实现

C ++中的二叉搜索树,叶子为空值,不适用于参考参数

用于在C中为二叉搜索树分配内存的分段错误

C Primer Plus--高级数据结构之二叉树

C中的二叉树 - 多数据

两数之和。给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true