কম্পিউটার টিউটোরিয়াল

ডিলিট কিওয়ার্ড ব্যবহার করে বাইনারি ট্রি ডিলিট করা C++ প্রোগ্রামে


এই টিউটোরিয়ালে আমরা শিখব কিভাবে ডিলিট কিওয়ার্ড ব্যবহার করে একটি বাইনারি ট্রি ডিলিট করা যায়।

আমরা বাইনারি ট্রি ডিলিট করার জন্য একটি ডিস্ট্রাক্টর মেম্বার ফাংশন ব্যবহার করব। ডিস্ট্রাক্টর মেম্বার ফাংশনটি স্বয়ংক্রিয়ভাবে আহ্বান হয় যখন অবজেক্ট স্কোপ থেকে বাইরে চলে যায় বা ডিলিট কল করলে নষ্ট হয়।

ডিস্ট্রাক্টর মেম্বার ফাংশনের নাম হয় ক্লাসের নামের সাথে টিল্ডা (~)।

সমস্যা সমাধানের ধাপগুলো:

  • 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

উপসংহার

টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।


  1. বাইনারি ট্রিতে নিকটতম লিফ নোড খুঁজে বের করা (C++)

  2. সি++ প্রোগ্রাম: বাইনারি ট্রি (Binary Tree)-এর বিজোড় লেভেল (Odd Level)-এ থাকা নোডগুলো প্রিন্ট করা

  3. Python দিয়ে বাইনারি ট্রির রুট পরিবর্তন করার প্রোগ্রাম

  4. Python দিয়ে বাইনারি ট্রিতে একটি নোডের ডানে অবস্থিত নোড বের করার প্রোগ্রাম