এটি একটি 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প্রদত্ত ডাটা সেটের সর্বাধিক উপাদানটি হল\n ";
i = 0;
while (root->right != NULL) {
i++;
root = root->right;
}
cout << root->d << "\n" << "ডাটা পাওয়া গেছে রুট থেকে " << i << " গভীরতায়।";
return 0;
}
আউটপুট
ডাটা সেট: 86 63 95 6 7 67 52 26 45 98 প্রদত্ত ডাটা সেটের সর্বাধিক উপাদানটি হল 98 ডাটা পাওয়া গেছে রুট থেকে 2 গভীরতায়।