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

C++ में बिल्कुल k किनारों के साथ किसी स्रोत से गंतव्य तक सभी संभावित वॉक की गणना करें

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

इसके लिए हमें एक ग्राफ और स्रोत और गंतव्य के मान प्रदान किए जाएंगे। हमारा काम स्रोत से शुरू होकर बिल्कुल k किनारों वाले गंतव्य तक के सभी संभावित रास्तों को खोजना है।

उदाहरण

#include <iostream>
using namespace std;
#define V 4
//counting walks using recursion
int countwalks(int graph[][V], int u, int v, int k){
   if (k == 0 && u == v)
      return 1;
   if (k == 1 && graph[u][v])
      return 1;
   if (k <= 0)
      return 0;
   int count = 0;
      //moving to the adjacent nodes
      for (int i = 0; i < V; i++)
      if (graph[u][i] == 1)
      count += countwalks(graph, i, v, k-1);
   return count;
}
int main(){
int graph[V][V] = {
      {0, 1, 1, 1},
      {0, 0, 0, 1},
      {0, 0, 0, 1},
      {0, 0, 0, 0}
   };
   int u = 0, v = 3, k = 2;
   cout << countwalks(graph, u, v, k);
   return 0;
}

आउटपुट

2

  1. किसी दिए गए स्रोत से गंतव्य तक सभी पथों को C++ में BFS का उपयोग करके प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ़ दिया जाता है और हमें Breadth First Search (BFS) का उपयोग करके स्रोत से ग्राफ़ के गंतव्य तक के सभी पथों को प्रिंट करना होता है। निर्देशित ग्राफ़ किनारों के साथ एक ग्राफ है जो शीर्ष a से b तक निर्देशित होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं -

  1. किसी दिए गए स्रोत से गंतव्य तक सभी पथों को C++ में प्रिंट करें

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

  1. सी ++ प्रोग्राम प्रत्येक सबसेट में बिल्कुल k तत्वों के साथ सभी संभावित सबसेट उत्पन्न करने के लिए

    यह प्रत्येक उपसमुच्चय में k तत्वों के साथ सभी संभावित उपसमुच्चय उत्पन्न करने के लिए एक C++ कार्यक्रम है। एल्गोरिदम Begin    function PossibleSubSet(char a[], int reqLen, int s, int currLen, bool check[], int l):    If currLen > reqLen    Return    Else if c