में 2 नोड्स के बीच के सभी पथ मुझे एक अनौपचारिक खोज (ब्रेडथ-फर्स्ट-सर्च) प्रोग्राम बनाना है जो दो नोड्स लेता है और उनके बीच के सभी पथ लौटाता है।ग्राफ
public void BFS(Nod start, Nod end) {
Queue<Nod> queue = new Queue<Nod>();
queue.Enqueue(start);
while (queue.Count != 0)
{
Nod u = queue.Dequeue();
if (u == end) break;
else
{
u.data = "Visited";
foreach (Edge edge in u.getChildren())
{
if (edge.getEnd().data == "")
{
edge.getEnd().data = "Visited";
if (edge.getEnd() != end)
{
edge.getEnd().setParent(u);
}
else
{
edge.getEnd().setParent(u);
cost = 0;
PrintPath(edge.getEnd(), true);
edge.getEnd().data = "";
//return;
}
}
queue.Enqueue(edge.getEnd());
}
}
}
}
मेरे समस्या यह है कि मैं केवल सब के बजाय दो रास्ते हो और मैं क्या मेरी कोड में संपादित करने के लिए उन सब को प्राप्त करने के लिए पता नहीं है है। मेरी समस्या का इनपुट इस मानचित्र पर आधारित है:
ग्राफ अन-निर्देशित (तस्वीर से मान यह है) है? यदि ऐसा है, तो मुझे लगता है कि आपको कुछ गतिशील प्रोग्रामिंग देखने की आवश्यकता है, क्योंकि बहुत से पथ कुछ उप-पथ साझा करेंगे। बस जानने के लिए, आप सभी संभावित पथ क्यों चाहते हैं? – aweis
अन-निर्देशित ग्राफ। मुझे बीएफएस ऑर्डर का उपयोग करके नोड्स के माध्यम से जाना होगा। मैं अनौपचारिक खोज के साथ न्यूनतम लागत वाले किसी को ढूंढने की सभी संभावनाएं चाहता हूं। –
क्या आप * सभी पथ * ढूंढ रहे हैं? या * सभी सबसे कम पथ *? जब आप लक्ष्य पाते हैं तो आप क्यों तोड़ते हैं? एक और समाधान खोजा जा सकता है ... इसके अलावा, क्या यह बीएफएस होना चाहिए? मुझे लगता है कि * Iterative-गहरा डीएफएस की तरह कुछ ज्यादा सब कम से कम पथ को खोजने के लिए लागू करने के लिए आसान हो जाएगा * ... लेकिन यह है कि सिर्फ मेरे हो सकता है: \ – amit