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

C++ প্রোগ্রাম: বাইনারি সার্চ ট্রিতে ডিকশনারি অপারেশন (ইনসার্ট, সার্চ, ডিলিট)

বাইনারি সার্চ ট্রি (BST) একটি সর্টেড বাইনারি ট্রি যেখানে সব নোডের দুটি প্রপার্টি থাকে:

  • রাইট সাব-ট্রির কী প্যারেন্ট নোডের কী থেকে বড়।
  • লেফ্ট সাব-ট্রির কী প্যারেন্ট নোডের কী থেকে ছোট বা সমান।
  • প্রতিটি নোডের দুইটির বেশি চাইল্ড থাকতে পারে না।

এটি বাইনারি সার্চ ট্রিতে ডিকশনারি অপারেশন (ইনসার্ট, সার্চ, ডিলিট) করার একটি C++ প্রোগ্রাম।

অ্যালগরিদম

ইনসার্টের জন্য:

Begin
    insert(int k) ফাংশন ডিক্লেয়ার করুন
    in = k mod max
    p[in] = (n_type*) malloc(sizeof(n_type))
    p[in]->d = k
    if (r[in] == NULL) r[in] = p[in], r[in]->n = NULL, t[in] = p[in]
    else t[in] = r[in], while (t[in]->n != NULL) t[in] = t[in]->n, t[in]->n = p[in]
End.

সার্চের জন্য:

Begin
    search(int k) ফাংশন ডিক্লেয়ার করুন
    flag = 0, in = k mod max, t[in] = r[in]
    while (t[in] != NULL)
        if (t[in]->d == k) "Search key is found" প্রিন্ট করুন, flag = 1, break
        else t[in] = t[in]->n
    if (flag == 0) "search key not found" প্রিন্ট করুন
End.

ডিলিটের জন্য:

Begin
    delete_element(int k) ফাংশন ডিক্লেয়ার করুন
    in = k mod max, t[in] = r[in]
    while (t[in]->d != k && t[in] != NULL) p[in] = t[in], t[in] = t[in]->n
    p[in]->n = t[in]->n
    ডিলিট করা এলিমেন্ট প্রিন্ট করুন
    t[in]->d = -1, t[in] = NULL, free(t[in])
End

উদাহরণ

#include <iostream>
#include <stdlib.h>
using namespace std;
#define max 20

typedef struct dictionary {
    int d;
    struct dictionary *n;
} n_type;

n_type *p[max], *r[max], *t[max];

class Dict {
public:
    int in;
    Dict();
    void insert(int);
    void search(int);
    void delete_element(int);
};

// ... (সম্পূর্ণ কোড ইনপুটে আছে)

int main() {
    // মেনু-চালিত ইন্টারফেসে ইনসার্ট, সার্চ, ডিলিট অপারেশন
}

আউটপুট

1.Create
2.Search for a value
3.Delete a value
Enter your choice:1
Enter the number of elements to be inserted:3
Enter the elements to be inserted:111 222 3333
Enter y to continue......y
... (ইন্টারঅ্যাক্টিভ আউটপুট)
  1. C++-এ Binary Search Tree-এ নোড ইনসার্ট করা

  2. C++-এ বাইনারি ট্রি থেকে বাইনারি সার্চ ট্রি (BST) কনভার্ট করুন

  3. বাইনারি সার্চ C++ প্রোগ্রামে

  4. C++ প্রোগ্রাম: বাইনারি সার্চ ট্রিতে লেফ্ট রোটেশন করা