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

C++-এ BST কে Min Heap-এ কনভার্ট করা


এই টিউটোরিয়ালে, আমরা বাইনারি সার্চ ট্রি (BST) কে মিন হিপ (Min Heap)-এ কনভার্ট করার প্রোগ্রাম নিয়ে আলোচনা করব।

এই জন্য আমাদের একটি বাইনারি সার্চ ট্রি দেওয়া থাকবে। আমাদের কাজ হলো দেওয়া বাইনারি সার্চ ট্রিকে একটি মিন হিপে কনভার্ট করা যাতে বাইনারি সার্চ ট্রির শর্ত মেনে এলিমেন্টগুলো নিজেদের সাথে তুলনা করা হয়।

C++ উদাহরণ

#include <bits/stdc++.h> using namespace std; // BST নোড স্ট্রাকচার struct Node { int data; Node *left, *right; }; // নোড তৈরি করা struct Node* getNode(int data) { struct Node *newNode = new Node; newNode->data = data; newNode->left = newNode->right = NULL; return newNode; } // প্রি-অর্ডার ট্রাভার্সাল করা void preorderTraversal(Node*); // ইন-অর্ডার ট্রাভার্সাল দিয়ে সর্টেড ফ্যাশনে ভ্যালু স্টোর করা void inorderTraversal(Node *root, vector<int>& arr) { if (root == NULL) return; inorderTraversal(root->left, arr); arr.push_back(root->data); inorderTraversal(root->right, arr); } // BST কে মিন হিপে কনভার্ট করা void convert_BSPheap(Node *root, vector<int> arr, int *i) { if (root == NULL) return; root->data = arr[++*i]; convert_BSPheap(root->left, arr, i); convert_BSPheap(root->right, arr, i); } // মিন হিপে কনভার্ট করা void convert_minheap(Node *root) { // নোড ভ্যালু সংরক্ষণের ভেক্টর vector<int> arr; int i = -1; // ইন-অর্ডার ট্রাভার্সাল দিয়ে যাওয়া inorderTraversal(root, arr); convert_BSPheap(root, arr, &i); } // প্রি-অর্ডার ট্রাভার্সাল প্রিন্ট করা void preorderTraversal(Node *root) { if (!root) return; cout << root->data << " "; preorderTraversal(root->left); preorderTraversal(root->right); } 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_minheap(root); cout << "Preorder Traversal:" << endl; preorderTraversal(root); return 0; }

আউটপুট

Preorder Traversal: 1 2 3 4 5 6 7
  1. C++-এ BST-এ দিয়ে যাওয়া রেঞ্জে (Range) পড়া নোডের সংখ্যা গণনা

  2. BST-এ নোড ডিলিট C++-এ

  3. বাইনোমিয়াল হিপ (Binomial Heap) C++-এ?

  4. C++-এ মিন হিপে নির্দিষ্ট মান x থেকে ছোট সব নোড প্রিন্ট করা