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

C++-এ বাইনারি সার্চ ট্রির ন্যূনতম মান খুঁজে বের করার প্রোগ্রাম

এটি একটি বাইনারি সার্চ ট্রির (Binary Search Tree) ন্যূনতম মান খুঁজে বের করার প্রোগ্রাম।

অ্যালগরিদম

শুরু
  nd নামক স্ট্রাকচার ডিক্লেয়ার করুন
  d ইন্টিজার ডেটা টাইপ ডিক্লেয়ার করুন
  lt পয়েন্টার nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
  rt পয়েন্টার nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
  new_nd() ফাংশন nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
  d ইন্টিজার ডেটা টাইপ ডিক্লেয়ার করুন
  প্যারামিটার হিসেবে পাস করুন
  nd পয়েন্টার nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
    nd = (struct nd*) malloc(sizeof(struct nd)) ইনিশিয়ালাইজ করুন
    nd->d = d
    nd->lt = NULL
    nd->rt = NULL
    return(nd)
শেষ
শুরু
  add_node() ফাংশন nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
  nd পয়েন্টার nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
  d ইন্টিজার ডেটা টাইপ ডিক্লেয়ার করুন
  প্যারামিটার হিসেবে পাস করুন
  যদি (nd == NULL) হয়, তবে
    return(new_nd(d))
  অন্যথায়
    যদি (d <= nd->d) হয়, তবে
      nd->lt = add_node(nd->lt, d)
    অন্যথায়
      nd->rt = add_node(nd->rt, d)
    return nd
শেষ
শুরু
  minimum_val() ফাংশন ইন্টিজার টাইপে ডিক্লেয়ার করুন
  nd পয়েন্টার nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
  প্যারামিটার হিসেবে পাস করুন
  cur পয়েন্টার nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
    cur = nd ইনিশিয়ালাইজ করুন
    যতক্ষণ (cur->lt != NULL) করুন
      cur = cur->lt
    return(cur->d)
  root পয়েন্টার nd টাইপের স্ট্রাকচারে ডিক্লেয়ার করুন
    root = NULL ইনিশিয়ালাইজ করুন
    root = add_node(root, 54)
    add_node(root, 32)
    add_node(root, 25)
    add_node(root, 45)
    add_node(root, 65)
    add_node(root, 75)
    প্রিন্ট "The Minimum value of the given binary search tree is: "
    বাইনারি ট্রির ন্যূনতম মান প্রিন্ট করুন
    getchar()
শেষ

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

struct nd {
    int d;
    struct nd* lt;
    struct nd* rt;
};

struct nd* new_nd(int d) {
    struct nd* nd = (struct nd*) malloc(sizeof(struct nd));
    nd->d = d;
    nd->lt = NULL;
    nd->rt = NULL;
    return(nd);
}

struct nd* add_node(struct nd* nd, int d) {
    if (nd == NULL)
        return(new_nd(d));
    else {
        if (d <= nd->d)
            nd->lt = add_node(nd->lt, d);
        else
            nd->rt = add_node(nd->rt, d);
        return nd;
    }
}

int minimum_val(struct nd* nd) {
    struct nd* cur = nd;
    while (cur->lt != NULL) {
        cur = cur->lt;
    }
    return(cur->d);
}

int main() {
    struct nd* root = NULL;
    root = add_node(root, 54);
    add_node(root, 32);
    add_node(root, 25);
    add_node(root, 45);
    add_node(root, 65);
    add_node(root, 75);
    cout << "The Minimum value of the given binary search tree is: " << minimum_val(root);
    getchar();
    return 0;
}

আউটপুট

The Minimum value of the given binary search tree is: 25
  1. C++-এ বাইনারি সার্চ ট্রি থেকে টার্গেটের নিকটতম K মান (Closest Binary Search Tree Value II)

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

  3. C++-এ বাইনারি সার্চ ট্রি (BST)-এ সর্বনিম্ন মান্যুক্ত নোড (Node) খুঁজে বের করা

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