c++ - 二叉搜索树代码

标签 c++ tree destructor binary-search-tree

想为二叉搜索树写一个析构函数(它应该删除树中的所有节点)这是我到目前为止得到的

virtual ~BST() {
  BSTNode<Data>* node = root;
  if (node == NULL){
    return;
  }else if (node->left) {
      while(node->left){
        delete node;
      }
  }else if (node->right){
      while(node->right)
        delete node;
  }
        isize = 0;
}

我知道代码有问题,我该如何解决

最佳答案

void BST::deleteNode(BSTNode<Data> *node) {
    if (node) {
        deleteNode(node->left);
        deleteNode(node->right);
        delete node;
    }
}

BST::~BST() {
    deleteNode(root);
}

关于c++ - 二叉搜索树代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15959699/

相关文章:

c++ - 源.cpp :LINE:COL: error: function definition is not allowed here

python - Numpy - 创建重叠的 3D 子数组作为内存效率高的向量

c# - 如果节点具有不同的属性+ MVC3架构,则使用复合设计模式

c++ - 为什么同时具有默认析构函数和 vector 成员会阻止类成为 "nothrow movable constructible"?

c++ - 二叉树析构函数的递归调用

c++ - Ubuntu 中安排的 C++ Qt 应用程序中没有样式的窗口外观

c++ - unsigned Char 循环将运行多少次

c++ - 两个不同的指针数组,但它们都指向同一个地址

python - python中的递归和return语句

c++ - 过渡到使用 noexcept 隐式声明析构函数的 C++11