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

C++ में BST को मिन हीप (Min Heap) में परिवर्तित करें


इस ट्यूटोरियल में, हम बाइनरी सर्च ट्री को मिन हीप में परिवर्तित करने के लिए एक प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक बाइनरी सर्च ट्री प्रदान की जाएगी। हमारा कार्य दी गई बाइनरी सर्च ट्री को मिन हीप में परिवर्तित करना है जैसे कि तुलना करने पर बाइनरी सर्च ट्री की शर्त का पालन हो।

उदाहरण

#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 से नोड हटाना C++ में BST से नोड हटाना

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री (BST) है। हमें एक कुंजी k दी जाती है, जिसे BST से हटाकर अपडेटेड BST लौटाना है। उदाहरण: ट्री [5,3,6,2,4,null,7] से कुंजी 3 हटाने पर ट्री [5,4,6,2,null,null,7] बनता है। BST डिलीशन एल्गोरिदम deleteRoot(root) हेल्पर: रूट नोड को हटाता है। यदि राइट सबट्री नहीं

  1. C++ में बाइनोमियल हीप C++ में बाइनोमियल हीप

    बाइनोमियल हीप को बाइनरी हीप के विस्तार के रूप में परिभाषित किया गया है जो बाइनरी हीप द्वारा प्रदान किए गए अन्य ऑपरेशन्स के साथ तेज़ मर्ज या यूनियन ऑपरेशन प्रदान करता है।एक बाइनोमियल हीप को बाइनोमियल ट्रीज़ के संग्रह के रूप में माना जाता है।बाइनोमियल ट्री क्या है?k क्रम का एक बाइनोमियल ट्री k-1 क्रम

  1. C++ में मिन हीप में मान x से छोटे सभी नोड्स प्रिंट करना C++ में मिन हीप में मान x से छोटे सभी नोड्स प्रिंट करना

    इस समस्या में, हमें एक मिन हीप और एक मान x दिया गया है और हमें x से छोटे सभी नोड्स प्रिंट करने हैं। मिन हीप मिन हीप एक विशेष प्रकार का बाइनरी ट्री है जिसमें हर नोड का मान उसके चाइल्ड नोड के मान से कम होता है। उदाहरण X = 45 आउटपुट - 2 4 7 10 17 22 33 34 अब, इस समस्या को हल करने के लिए हमें पूरे