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

C++ प्रोग्राम: दिए गए बाइनरी ट्री का इनऑर्डर नॉन-रिकर्सिव ट्रैवर्सल करना

यदि एक बाइनरी ट्री को इन-ऑर्डर में ट्रैवर्स किया जाता है, तो पहले लेफ्ट सबट्री देखी जाती है, फिर रूट और बाद में राइट सब-ट्री। इनऑर्डर ट्रैवर्सल में आउटपुट कुंजी आरोही क्रम में होती है। यह रिकर्सन के बिना इनऑर्डर ट्री ट्रैवर्सल के लिए एक C++ प्रोग्राम है।

एल्गोरिदम

Begin
    n स्ट्रक्चर घोषित करें।
        d को इंटीजर डेटा टाइप के रूप में घोषित करें।
        स्ट्रक्चर n के विरुद्ध एक पॉइंटर l घोषित करें।
        स्ट्रक्चर n के विरुद्ध एक पॉइंटर r घोषित करें।
        स्ट्रक्चर n का कंस्ट्रक्टर घोषित करें।
            एक इंटीजर वेरिएबल d को पैरामीटर के रूप में पास करें।
            this->d = d
            l = r = NULL
    inOrder(struct n *root) फंक्शन घोषित करें।
        एक स्टैक s घोषित करें।
        स्ट्रक्चर n के विरुद्ध एक पॉइंटर current घोषित करें।
            n *current = root आरंभ करें।
        while (current != NULL || s.empty() == false)
            while (current != NULL)
                s.push(current)
                current = current->l
            current = s.top()
            s.pop()
            current->d प्रिंट करें।
            current = current->r.
    ट्री के नोड्स में मान डालें।
    ट्री को ट्रैवर्स करने के लिए inOrder(root) फंक्शन कॉल करें।
End.

उदाहरण

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

struct n {
    int d;
    struct n* l;
    struct n* r;
    n (int d) {
        this->d = d;
        l = r = NULL;
    }
};

void inOrder(struct n *root) {
    stack<n *> s;
    n *current = root;
    while (current != NULL || s.empty() == false) {
        while (current != NULL) {
            s.push(current);
            current = current->l;
        }
        current = s.top();
        s.pop();
        cout << current->d << " ";
        current = current->r;
    }
}

int main() {
    struct n* root = new n(6);
    root->l = new n(4);
    root->r= new n(7);
    root->l->l = new n(8);
    root->l->r= new n(5);
    root->r->l = new n(9);
    root->r->r = new n(10);
    inOrder(root);
    return 0;
}

आउटपुट

8 4 5 6 9 7 10
  1. C++ में दिए गए बाइनरी ट्री का पोस्टऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम C++ में दिए गए बाइनरी ट्री का पोस्टऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप है। इसमें ट्री के प्रत्येक नोड को ठीक एक बार चेक या प्रिंट करना शामिल है। बाइनरी सर्च ट्री का पोस्टऑर्डर ट्रैवर्सल ट्री के नोड्स को (लेफ्ट, राइट, रूट) के क्रम में विजिट करता है। बाइनरी ट्री के पोस्टऑर्डर ट्रैवर्सल का एक उदाहरण निम्नलिखित है। एक बाइनरी ट्री नि

  1. C++ में दिए गए बाइनरी ट्री का इनऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम C++ में दिए गए बाइनरी ट्री का इनऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप है। इसमें ट्री के प्रत्येक नोड को ठीक एक बार चेक या प्रिंट करना शामिल है। बाइनरी सर्च ट्री का इनऑर्डर ट्रैवर्सल ट्री के नोड्स को (लेफ्ट, रूट, राइट) के क्रम में विजिट करता है। बाइनरी ट्री के इनऑर्डर ट्रैवर्सल का एक उदाहरण निम्नलिखित है। एक बाइनरी ट्री निम्नलिख

  1. C++ में दिए गए बाइनरी ट्री का प्रीऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम C++ में दिए गए बाइनरी ट्री का प्रीऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप है। इसमें ट्री के प्रत्येक नोड को ठीक एक बार चेक या प्रिंट करना शामिल है। बाइनरी सर्च ट्री का प्रीऑर्डर ट्रैवर्सल ट्री के नोड्स को (रूट, लेफ्ट, राइट) के क्रम में विजिट करता है। बाइनरी ट्री के प्रीऑर्डर ट्रैवर्सल का एक उदाहरण निम्नलिखित है। एक बाइनरी ट्री निम्