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

C++ में बाइनरी ट्री को उसके मिरर ट्री में बदलें


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

इसके लिए हमें एक बाइनरी ट्री प्रदान की जाएगी। हमारा कार्य लेफ्ट और राइट एंड पर मानों को स्वैप करके दिए गए बाइनरी ट्री से एक मिरर ट्री बनाना होगा।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

// बाइनरी ट्री नोड संरचना
struct Node {
    int data;
    struct Node* left;
    struct Node* right;
};

// बिना चाइल्ड नोड्स के नया नोड बनाना
struct Node* newNode(int data) {
    struct Node* node = (struct Node*)malloc(sizeof(struct Node));
    node->data = data;
    node->left = NULL;
    node->right = NULL;
    return(node);
}

void mirror(struct Node* node) {
    if (node == NULL)
        return;
    else {
        struct Node* temp;
        // सबट्रीज़ को स्वैप करना
        mirror(node->left);
        mirror(node->right);
        temp = node->left;
        node->left = node->right;
        node->right = temp;
    }
}

// इनऑर्डर ट्रैवर्सल प्रिंट करना
void print_tree(struct Node* node) {
    if (node == NULL)
        return;
    print_tree(node->left);
    cout << node->data << " ";
    print_tree(node->right);
}

int main() {
    struct Node* root = newNode(1);
    root->left = newNode(2);
    root->right = newNode(3);
    root->left->left = newNode(4);
    root->left->right = newNode(5);

    // प्रारंभिक ट्री प्रिंट करना
    cout << "Inorder traversal of the constructed" << endl;
    print_tree(root);

    mirror(root);

    // मिरर ट्री प्रिंट करना
    cout << "\nInorder traversal of the mirror tree" << endl;
    print_tree(root);
    return 0;
}

आउटपुट

Inorder traversal of the constructed 4 2 5 1 3
Inorder traversal of the mirror tree 3 1 5 2 4
  1. C++ में सॉर्टेड लिस्ट को बाइनरी सर्च ट्री में बदलना C++ में सॉर्टेड लिस्ट को बाइनरी सर्च ट्री में बदलना

    मान लीजिए हमारे पास एक सिंगली लिंक्ड लिस्ट है जहां एलिमेंट्स आरोही क्रम में सॉर्टेड हैं, हमें इसे हाइट-बैलेंस्ड BST में बदलना है। उदाहरण के लिए, अगर लिस्ट है [-10, -3, 0, 5, 9], तो संभावित ट्री होगा: इसे हल करने के लिए, हम इन स्टेप्स को फॉलो करेंगे: अगर लिस्ट खाली है, तो नल लौटाएं sortedListToBST

  1. C++ में बाइनरी ट्री प्रूनिंग C++ में बाइनरी ट्री प्रूनिंग

    मान लीजिए हमारे पास एक बाइनरी ट्री का हेड नोड root है, जहाँ प्रत्येक नोड का मान या तो 0 या 1 है। हमें वही ट्री लौटाना है जहाँ हर वह सबट्री हटा दी गई हो जिसमें 1 नहीं है। उदाहरण: इनपुट ट्री [1,1,0,1,1,0,1,0] के लिए, आउटपुट ट्री में केवल वही नोड्स रहेंगे जिनके सबट्री में कम से कम एक 1 है। पोस्ट-ऑर्

  1. C++ में Insert into a Binary Search Tree C++ में Insert into a Binary Search Tree

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री है। हमें केवल एक विधि लिखनी है, जो दिए गए नोड को पैरामीटर के रूप में सम्मिलन ऑपरेशन करती है। हमें ध्यान रखना होगा कि ऑपरेशन के बाद, ट्री BST भी बनी रहे। इसलिए यदि ट्री इस तरह है -यदि हम 5 सम्मिलित करते हैं, तो ट्री इस तरह होगी -इसे हल करने के लिए, हम इन चरणों