在C ++程序中使用delete关键字删除二叉树

在本教程中,我们将学习如何使用delete关键字删除二叉树。

我们将使用析构函数成员函数删除二进制文件。当对象超出范围或通过调用delete销毁对象时,将自动调用析构函数成员函数。

析构函数成员函数的名称前面带有波浪号(〜)。

让我们看看解决问题的步骤。

  • 写一个叫做Node的类。

  • 编写一个接受节点数据的构造函数。

  • 编写一个析构函数。

    • 删除左节点。

    • 删除右节点。

    • 打印当前节点数据。

  • 用伪数据初始化二叉树。

  • 使用delete root语句删除二进制树。

示例

#include <bits/stdc++.h>

using namespace std;

class Node {

   public:

   int data;

   Node* left;

   Node* right;

   // 构造函数

   Node(int data) {

      this->data = data;

      this->left = NULL;

      this->right = NULL;

   }

   // 析构函数

   ~Node() {

      // 删除左右指针

      delete left;

      delete right;

      // 打印节点数据

      cout << "带有数据的已删除节点 " << this->data << endl;

   }

};

int main() {

   Node* root = new Node(1);

   root->left = new Node(2);

   root->right = new Node(3);

   root->left->left = new Node(4);

   root->left->right = new Node(5);

   root->right->left = new Node(6);

   root->right->right = new Node(7);

   // 使用解构功能删除整个树

   delete root;

   return 0;

}

输出结果

如果执行上述程序,则将得到以下结果。

带有数据的已删除节点 4

带有数据的已删除节点 5

带有数据的已删除节点 2

带有数据的已删除节点 6

带有数据的已删除节点 7

带有数据的已删除节点 3

带有数据的已删除节点 1

结论

以上是 在C ++程序中使用delete关键字删除二叉树 的全部内容, 来源链接: utcz.com/z/325141.html

回到顶部