在 C++ 中使用 delete 關鍵字刪除二叉樹?
我們首先使用包含 int 資料、btree_node * rightChild、btree_node * leftChild 的類來定義我們的二叉樹。leftChild 和 rightChild 是 btree_node 的指標。我們類中的所有成員都是公共的。
class btree_node {
public:
int data;
btree_node* leftChild;
btree_node* rightChild;要建立一個新節點,我們有建構函式,它將 int 值作為引數傳遞,以將其分配給新建立的節點值。將 leftChild 和 rightChild 設定為 null。
btree_node(int data){
this->data = data;
this->leftChild = NULL;
this-> = NULL;
}類解構函式呼叫 delete 關鍵字來刪除二叉樹的左、右子節點。
~btree_node(){
delete leftChild;
delete rightChild;
cout << this->data << "is being deleted"<<endl;
}要觸發樹的刪除,我們對根節點呼叫 delete,因為它的左、右子樹將一起被刪除。
delete root;
示例
讓我們看以下使用 delete 關鍵字刪除二叉樹的實現 -
#include <iostream>
using namespace std;
class btree_node {
public:
int data;
btree_node* leftChild;
btree_node* rightChild;
btree_node(int data){
this->data = data;
this->leftChild = NULL;
this->rightChild = NULL;
}
~btree_node(){
delete leftChild;
delete rightChild;
cout << this->data << " is being deleted"<<endl;
}
};
int main(){
btree_node* root = new btree_node(2);
btree_node* node1 = new btree_node(4);
btree_node* node2 = new btree_node(6);
btree_node* node3 = new btree_node(8);
btree_node* node4 = new btree_node(10);
root->leftChild = node1;
root->rightChild = node2;
node1->leftChild = node3;
node1->rightChild = node4;
delete root;
return 0;
}輸出
以上程式碼將生成以下輸出 -
8 is being deleted 10 is being deleted 4 is being deleted 6 is being deleted 2 is being deleted
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP