Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

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++ में दी गई श्रेणी में स्थित BST नोड्स की गणना करें

    हमें नोड्स से बना एक बाइनरी सर्च ट्री दिया गया है और एक रेंज भी दी गई है और कार्य दिए गए रेंज में स्थित नोड्स की गिनती की गणना करना और परिणाम प्रदर्शित करना है। बाइनरी सर्च ट्री (BST) एक ऐसा पेड़ है जिसमें सभी नोड नीचे बताए गए गुणों का पालन करते हैं - किसी नोड के बाएँ उपप्रकार की कुंजी उसके पैरे

  1. सी ++ में द्विपद ढेर?

    द्विपद हीप को बाइनरी हीप के विस्तार के रूप में परिभाषित किया गया है जो बाइनरी हीप द्वारा प्रदान किए गए अन्य कार्यों के साथ तेजी से विलय या संघ संचालन प्रदान करता है। द्विपद ढेर को द्विपद वृक्षों के संग्रह के रूप में माना जाता है। द्विपद वृक्ष क्या है? क्रम k-1 के दो द्विपद वृक्षों को लेकर और एक क

  1. सी ++ में अधिकतम ढेर में न्यूनतम तत्व।

    समस्या कथन अधिकतम ढेर में कम से कम मान वाला तत्व खोजें। आइए हम अधिकतम ढेर के नीचे विचार करें। रूट नोड के अधिकतम ढेर मूल्य में हमेशा उसके बच्चे से अधिक होता है। इस संपत्ति के कारण, हम यह निष्कर्ष निकाल सकते हैं कि मान लीफ नोड्स में से एक में मौजूद होगा। यदि ढेर में n नोड्स हैं तो छत (n/2) पत्ते