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

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

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

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

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

उदाहरण

#include <iostream>
#include <vector>
using namespace std;
//calculating all the possible paths from the root node
void calc_allpath(vector<int> 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);
}
//printing all the possible paths from the root node
void print_allpath(int nth_node){
   vector<int> 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++ में प्रिंट करें

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

  1. C++ . का उपयोग करके एक पेड़ के विषम स्तरों पर नोड्स को प्रिंट करने का कार्यक्रम

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

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

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