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

C++ प्रोग्राम: बाइनरी ट्री में रूट से दिए गए नोड तक का पथ प्रिंट करना

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

एक दिए गए बाइनरी ट्री जिसमें विशिष्ट नोड्स हैं, हमें रूट नोड से बाइनरी ट्री के विशेष रूप से दिए गए नोड तक पहुंचने का पूरा पथ प्रिंट करना होगा।

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

उदाहरण

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

struct Node {
    int data;
    Node *left, *right;
};

struct Node* create_node(int data) {
    struct Node *new_node = new Node;
    new_node->data = data;
    new_node->left = new_node->right = NULL;
    return new_node;
}

// जांचें कि रूट नोड से तत्व तक पथ मौजूद है या नहीं
bool is_path(Node *root, vector& arr, int x) {
    if (!root)
        return false;
    arr.push_back(root->data);
    if (root->data == x)
        return true;
    if (is_path(root->left, arr, x) || is_path(root->right, arr, x))
        return true;
    arr.pop_back();
    return false;
}

// रूट नोड से तत्व तक का पथ प्रिंट करना
void print_path(Node *root, int x) {
    vector arr;
    if (is_path(root, arr, x)) {
        for (int i = 0; i < arr.size() - 1; i++)
            cout << arr[i] << " -> ";
        cout << arr[arr.size() - 1];
    } else
        cout << "Path doesn't exist" << endl;
}

int main() {
    struct Node *root = create_node(13);
    root->left = create_node(21);
    root->right = create_node(43);
    root->left->left = create_node(34);
    root->left->right = create_node(55);
    root->right->left = create_node(68);
    root->right->right = create_node(79);
    int x = 68;
    print_path(root, x);
    return 0;
}

आउटपुट

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

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

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

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

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

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