কম্পিউটার

C++ এ প্রদত্ত লেভেল অর্ডার ট্রাভার্সাল থেকে BST তৈরি করুন


ধরুন আমাদের ওয়ান লেভেল অর্ডার ট্রাভার্সাল আছে। এই ট্রাভার্সাল থেকে. আমাদের গাছ তৈরি করতে হবে তাই যদি ট্রাভার্সাল হয় [7, 4, 12, 3, 6, 8, 1, 5, 10], তাহলে গাছটি হবে −

C++ এ প্রদত্ত লেভেল অর্ডার ট্রাভার্সাল থেকে BST তৈরি করুন

এটি সমাধান করার জন্য, আমরা পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করব। প্রথম উপাদান রুট হবে. দ্বিতীয় উপাদানটি হবে বাম শিশু, এবং তৃতীয় উপাদানটি হবে ডান শিশু (যদি BST-এর শর্ত সন্তুষ্ট হয়), এই সম্পত্তিটি সমস্ত উপাদানের জন্য সন্তুষ্ট হবে৷ তাই আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • প্রথমে আমাদের অ্যারের প্রথম উপাদানটি নিতে হবে এবং এটিকে রুট হিসাবে তৈরি করতে হবে।

  • তারপর দ্বিতীয় উপাদান নিন। যদি এটি মূলের চেয়ে ছোট হয়, তবে এটিকে বাম শিশু অন্যথায় ডান শিশু করুন

  • তারপর BST করার জন্য ধাপ 2 কে বারবার কল করুন।

উদাহরণ

#include <iostream>
using namespace std;
class Node {
   public:
   int data;
   Node *left, *right;
};
Node* getNode(int data) {
   Node *newNode = new Node;
   newNode->data = data;
   newNode->left = newNode->right = NULL;
   return newNode;
}
Node *lvlOrd(Node *root , int data) {
   if(root==NULL){
      root = getNode(data);
      return root;
   }
   if(data <= root->data)
      root->left = lvlOrd(root->left, data);
   else
      root->right = lvlOrd(root->right, data);
   return root;
}
Node* makeTree(int arr[], int n) {
   if(n==0)
      return NULL;
   Node *root= NULL;
   for(int i=0;i<n;i++)
   root = lvlOrd(root , arr[i]);
   return root;
}
void inord(Node* root) {
   if (!root)
      return;
   inord(root->left);
   cout << root->data << " ";
   inord(root->right);
}
int main() {
   int arr[] = {7, 4, 12, 3, 6, 8, 1, 5, 10};
   int n = sizeof(arr) / sizeof(arr[0]);
   Node *root = makeTree(arr, n);
   cout << "Inorder Traversal: ";
   inord(root);
}

আউটপুট

Inorder Traversal: 1 3 4 5 6 7 8 10 12

  1. C++ এ একটি প্রদত্ত BST-এর প্রতিটি নোডে সব বড় মান যোগ করুন?

  2. C++ প্রোগ্রামিং-এ লাইন দ্বারা প্রিন্ট লেভেল অর্ডার ট্রাভার্সাল লাইন।

  3. ডেটা স্ট্রাকচারে লেভেল অর্ডার ট্রি ট্রাভার্সাল

  4. পাইথনে স্ট্যাক ব্যবহার করে প্রদত্ত পোস্টঅর্ডার ট্রাভার্সাল থেকে একটি BST তৈরি করুন