Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การลบไบนารีทรีโดยใช้คีย์เวิร์ด delete ในโปรแกรม C++


ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีลบไบนารีทรีโดยใช้คีย์เวิร์ด delete

เราจะใช้ฟังก์ชันสมาชิก destructor เพื่อลบไบนารี ฟังก์ชันสมาชิก destructor จะถูกเรียกใช้โดยอัตโนมัติเมื่ออ็อบเจ็กต์ออกจากขอบเขตหรือถูกทำลายโดยการเรียก delete

ฟังก์ชันสมาชิก destructor มีชื่อเป็นคลาสที่มี tilde (~) ก่อนหน้านั้น

มาดูขั้นตอนการแก้ปัญหากัน

  • เขียนคลาสที่เรียกว่า Node

  • เขียนฟังก์ชันตัวสร้างที่ยอมรับข้อมูลสำหรับโหนด

  • เขียนฟังก์ชันตัวทำลาย

    • ลบโหนดด้านซ้าย

    • ลบโหนดที่ถูกต้อง

    • พิมพ์ข้อมูลโหนดปัจจุบัน

  • เริ่มต้นไบนารีทรีด้วยข้อมูลจำลอง

  • ลบไบนารีโดยใช้ ลบรูท คำสั่ง

ตัวอย่าง

#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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น