এটি একটি C++ প্রোগ্রাম যা বাইনারি সার্চ ট্রি ব্যবহার করে অ্যারের ন্যূনতম উপাদান খুঁজে বের করে। এই প্রোগ্রামের সময় জটিলতা O(log n)।
অ্যালগরিদম
শুরু দেওয়া অসর্টেড ডাটা অ্যারের জন্য বাইনারি সার্চ ট্রি নির্মাণ করুন। ন্যূনতম উপাদান খুঁজতে পয়েন্টারকে বামপাশের চাইল্ড নোডে সরান। এই মানটি প্রদত্ত ডাটার মধ্যে ন্যূনতম মান হিসেবে প্রিন্ট করুন। শেষ
উদাহরণ কোড
#include <iostream>
using namespace std;
struct node {
int d;
node *left;
node *right;
};
node* CreateNode(int d) {
node *newnode = new node;
newnode->d = d;
newnode->left = NULL;
newnode->right = NULL;
return newnode;
}
node* InsertIntoTree(node* root, int d) {
node *temp = CreateNode(d);
node *t = new node;
t = root;
if (root == NULL)
root = temp;
else {
while (t != NULL) {
if (t->d < d) {
if (t->right == NULL) {
t->right = temp;
break;
}
t = t->right;
} else if (t->d > d) {
if (t->left == NULL) {
t->left = temp;
break;
}
t = t->left;
}
}
}
return root;
}
int main() {
int n, i, a[10] = {86, 63, 95, 6, 7, 67, 52, 26, 45, 98};
node *root = new node;
root = NULL;
cout << "\nডাটা সেট:\n";
for (i = 0; i < 10; i++) {
cout << a[i] << " ";
root = InsertIntoTree(root, a[i]);
}
cout << "\n\nপ্রদত্ত ডাটা সেটের ন্যূনতম উপাদানটি হল ";
i = 0;
while (root->left != NULL) {
i++;
root = root->left;
}
cout << root->d << " যা রুট থেকে " << i << " গভীরতায় পাওয়া গেছে।";
return 0;
}
আউটপুট
ডাটা সেট: 86 63 95 6 7 67 52 26 45 98 প্রদত্ত ডাটা সেটের ন্যূনতম উপাদানটি হল 6 যা রুট থেকে 2 গভীরতায় পাওয়া গেছে।