এই টিউটোরিয়ালে আমরা শিখব কিভাবে ডিলিট কিওয়ার্ড ব্যবহার করে একটি বাইনারি ট্রি ডিলিট করা যায়।
আমরা বাইনারি ট্রি ডিলিট করার জন্য একটি ডিস্ট্রাক্টর মেম্বার ফাংশন ব্যবহার করব। ডিস্ট্রাক্টর মেম্বার ফাংশনটি স্বয়ংক্রিয়ভাবে আহ্বান হয় যখন অবজেক্ট স্কোপ থেকে বাইরে চলে যায় বা ডিলিট কল করলে নষ্ট হয়।
ডিস্ট্রাক্টর মেম্বার ফাংশনের নাম হয় ক্লাসের নামের সাথে টিল্ডা (~)।
সমস্যা সমাধানের ধাপগুলো:
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
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।