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

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

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

इस प्रोग्राम में, हमें एक संख्या N दी जाएगी, जो 1 से N तक बाइनरी ट्री में मौजूद तत्वों की संख्या को दर्शाती है; 1 बाइनरी ट्री का रूट नोड है। इसलिए, हमारा कार्य रूट नोड से बाइनरी ट्री में मौजूद विभिन्न अन्य तत्वों तक के सभी संभावित पथ प्रिंट करना है।

इस प्रोग्राम को हल करने के लिए, हम जानते हैं कि दिए गए नोड i के लिए, इसका बायां बच्चा 2*i के रूप में गणना की जा सकती है और इसका दायां बच्चा 2*i+1 के रूप में गणना की जा सकती है। हम फिर उस विशेष तत्व के पथ को एक वेक्टर में स्टोर करने के लिए बैकट्रैकिंग का उपयोग कर सकते हैं और फिर सभी संभावित पथ प्रिंट कर सकते हैं।

उदाहरण

#include <iostream>
#include <vector>
using namespace std;

// रूट नोड से सभी संभावित पथों की गणना करना
void calc_allpath(vector paths, int nth_node, int kth_node) {
    if (kth_node > nth_node)
        return;
    paths.push_back(kth_node);
    for (int i = 0; i < paths.size(); i++)
        cout << paths[i] << " ";
    cout << endl;
    calc_allpath(paths, nth_node, kth_node * 2);
    calc_allpath(paths, nth_node, kth_node * 2 + 1);
}

// रूट नोड से सभी संभावित पथ प्रिंट करना
void print_allpath(int nth_node) {
    vector paths;
    calc_allpath(paths, nth_node, 1);
}

int main() {
    int nth_node = 9;
    print_allpath(nth_node);
    return 0;
}

आउटपुट

1
1 2
1 2 4
1 2 4 8
1 2 4 9
1 2 5
1 3
1 3 6
1 3 7
  1. C++ में दिए गए स्रोत से गंतव्य तक सभी पथ प्रिंट करें C++ में दिए गए स्रोत से गंतव्य तक सभी पथ प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ दिया गया है और हमें ग्राफ के स्रोत से गंतव्य तक सभी पथ प्रिंट करने हैं। निर्देशित ग्राफ एक ग्राफ है जिसमें किनारे शीर्ष a से b की ओर निर्देशित होते हैं। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत = K गंतव्य = P आउटपुट: P यहां, हमने K से P तक के पथ ढूंढे

  1. C++ प्रोग्राम: बाइनरी ट्री के विषम स्तरों पर नोड्स प्रिंट करना C++ प्रोग्राम: बाइनरी ट्री के विषम स्तरों पर नोड्स प्रिंट करना

    इस ट्यूटोरियल में, हम एक दिए गए बाइनरी ट्री के विषम स्तरों पर मौजूद नोड्स को प्रिंट करने के प्रोग्राम पर चर्चा करेंगे। इस प्रोग्राम में, रूट नोड के लिए स्तर 1 माना जाता है और साथ ही वैकल्पिक स्तर अगला विषम स्तर होता है। उदाहरण के लिए, मान लें हमें निम्नलिखित बाइनरी ट्री दिया गया है: तो इस बाइनरी

  1. C++ प्रोग्राम: बाइनरी ट्री में किन्हीं दो नोड्स के बीच पथ प्रिंट करना C++ प्रोग्राम: बाइनरी ट्री में किन्हीं दो नोड्स के बीच पथ प्रिंट करना

    हमें एक बाइनरी ट्री दिया गया है जिसके नोड्स विशिष्ट हैं और उस बाइनरी ट्री के दो नोड्स दिए गए हैं जिनके बीच का पथ हम प्रिंट करना चाहते हैं। उदाहरण के लिए - हम नोड 140 से 211 के बीच का पथ प्रिंट करना चाहते हैं तो इसका आउटपुट होना चाहिए - Output: 140->3->10->211 विचार यह है कि रूट नोड्स से दो