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

C++ में टर्नरी एक्सप्रेशन को बाइनरी ट्री में बदलना


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

इसके लिए हमें एक टर्नरी एक्सप्रेशन दिया जाएगा। हमारा कार्य दिए गए एक्सप्रेशन को बाइनरी ट्री के रूप में बदलना है जो विभिन्न पाथ (विकल्पों) पर निर्भर करता है।

उदाहरण

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

// ट्री की नोड संरचना 
struct Node { 
    char data; 
    Node *left, *right; 
}; 

// नया नोड बनाना 
Node *newNode(char Data) { 
    Node *new_node = new Node; 
    new_node->data = Data; 
    new_node->left = new_node->right = NULL; 
    return new_node; 
} 

// टर्नरी एक्सप्रेशन को बाइनरी ट्री में बदलना 
Node *convertExpression(string str, int & i) { 
    // वर्तमान कैरेक्टर संग्रहीत करना 
    Node *root = newNode(str[i]); 
    // यदि अंतिम कैरेक्टर, बेस केस लौटाएं 
    if (i == str.length() - 1) 
        return root; 
    i++; 
    // यदि अगला कैरेक्टर '?' है, 
    // तो वर्तमान नोड के लिए सबट्री होगी 
    if (str[i] == '?') { 
        // '?' को स्किप करना 
        i++; 
        root->left = convertExpression(str, i); 
        // ':' कैरेक्टर को स्किप करना 
        i++; 
        root->right = convertExpression(str, i); 
        return root; 
    } else 
        return root; 
} 

// बाइनरी ट्री प्रिंट करना 
void display_tree(Node *root) { 
    if (!root) 
        return; 
    cout << root->data << " "; 
    display_tree(root->left); 
    display_tree(root->right); 
} 

int main() { 
    string expression = "a?b?c:d:e"; 
    int i = 0; 
    Node *root = convertExpression(expression, i); 
    display_tree(root); 
    return 0; 
}

आउटपुट

a b c d e

  1. C++ में सॉर्टेड लिस्ट को बाइनरी सर्च ट्री में बदलना C++ में सॉर्टेड लिस्ट को बाइनरी सर्च ट्री में बदलना

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

  1. C++ में बाइनरी ट्री में नोड का प्रीऑर्डर प्रीडिसेसर C++ में बाइनरी ट्री में नोड का प्रीऑर्डर प्रीडिसेसर

    इस समस्या में, हमें एक बाइनरी ट्री और एक नोड मान दिया गया है। हमारा कार्य नोड का प्रीऑर्डर प्रीडिसेसर प्रिंट करना है।बाइनरी ट्री एक विशेष प्रकार का ट्री है जिसमें प्रत्येक रूट नोड में अधिकतम 2 चाइल्ड नोड्स हो सकते हैं।प्रीऑर्डर ट्रैवर्सल ट्री के नोड्स को पार करने का एक तरीका है। इसमें हम पहले र

  1. C++ में बाइनरी ट्री में नोड का प्रीऑर्डर सक्सेसर C++ में बाइनरी ट्री में नोड का प्रीऑर्डर सक्सेसर

    इस समस्या में, हमें एक बाइनरी ट्री और एक नोड मान दिया गया है। हमारा कार्य नोड का प्रीऑर्डर सक्सेसर प्रिंट करना है।बाइनरी ट्री एक विशेष प्रकार का ट्री है जिसमें प्रत्येक रूट नोड में अधिकतम 2 चाइल्ड नोड्स हो सकते हैं।प्रीऑर्डर ट्रैवर्सल ट्री के नोड्स को पार करने का एक तरीका है। इसमें हम पहले रूट नोड क