使用C++程序中的delete关键字删除二叉树
在本教程中,我们将学习如何使用delete关键字删除二叉树。
我们将使用析构函数来删除二叉树。当对象超出作用域或通过调用delete被销毁时,会自动调用析构函数。
析构函数的名称与类名相同,但在前面加有波浪号 (~)。
让我们看看解决这个问题的步骤。
编写一个名为Node的类。
编写一个接受节点数据的构造函数。
编写一个析构函数。
删除左子节点。
删除右子节点。
打印当前节点数据。
使用虚拟数据初始化二叉树。
使用delete root语句删除二叉树。
示例
#include <bits/stdc++.h> using namespace std; class Node { public: int data; Node* left; Node* right; // constructor Node(int data) { this->data = data; this->left = NULL; this->right = NULL; } // destructor ~Node() { // deleting the left and right pointers delete left; delete right; // printing node data cout << "Deleted node with data " << 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); // deleting the entire tree using destructure function delete root; return 0; }
输出
如果执行上述程序,则会得到以下结果。
Deleted node with data 4 Deleted node with data 5 Deleted node with data 2 Deleted node with data 6 Deleted node with data 7 Deleted node with data 3 Deleted node with data 1
结论
如果您在本教程中有任何疑问,请在评论区提出。
广告