কম্পিউটার

C++ এ BST কে সর্বোচ্চ হিপে রূপান্তর করুন


এই টিউটোরিয়ালে, আমরা একটি বাইনারি সার্চ ট্রিকে সর্বাধিক হিপে রূপান্তর করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব৷

এই জন্য আমাদের একটি বাইনারি অনুসন্ধান গাছ প্রদান করা হবে. আমাদের কাজ হল প্রদত্ত বাইনারি সার্চ ট্রিকে সর্বাধিক হিপে রূপান্তর করা যাতে বাইনারি সার্চ ট্রির অবস্থা অনুসরণ করা হয় যখন উপাদানগুলিকে নিজেদের সাথে তুলনা করা হয়।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//node structure of BST
struct Node {
   int data;
   Node *left, *right;
};
//node creation
struct Node* getNode(int data) {
   struct Node* newNode = new Node;
   newNode->data = data;
   newNode->left = newNode->right = NULL;
   return newNode;
}
//performing post order traversal
void postorderTraversal(Node*);
//moving in a sorted manner using inorder traversal
void inorderTraversal(Node* root, vector<int>& arr) {
   if (root == NULL)
      return;
   inorderTraversal(root->left, arr);
   arr.push_back(root->data);
   inorderTraversal(root->right, arr);
}
void convert_BSTHeap(Node* root, vector<int> arr, int* i){
   if (root == NULL)
      return;
   convert_BSTHeap(root->left, arr, i);
   convert_BSTHeap(root->right, arr, i);
   //copying data from array to node
   root->data = arr[++*i];
}
//converting to max heap
void convert_maxheap(Node* root) {
   vector<int> arr;
   int i = -1;
   inorderTraversal(root, arr);
   convert_BSTHeap(root, arr, &i);
}
//printing post order traversal
void postorderTraversal(Node* root) {
   if (!root)
      return;
   postorderTraversal(root->left);
   postorderTraversal(root->right);
   cout << root->data << " ";
}
int main() {
   struct Node* root = getNode(4);
   root->left = getNode(2);
   root->right = getNode(6);
   root->left->left = getNode(1);
   root->left->right = getNode(3);
   root->right->left = getNode(5);
   root->right->right = getNode(7);
   convert_maxheap(root);
   cout << "Postorder Traversal:" << endl;
   postorderTraversal(root);
   return 0;
}

আউটপুট

Postorder Traversal:
1 2 3 4 5 6 7

  1. C++ এ একটি লাইনে সর্বোচ্চ পয়েন্ট

  2. C++ এ একটি প্রদত্ত পরিসরে থাকা BST নোডগুলি গণনা করুন

  3. C++ এ দ্বিপদ স্তূপ?

  4. C++ এ সর্বাধিক হিপে ন্যূনতম উপাদান।