İki düğüm alıp aralarındaki tüm yolları döndüren, hatalı bir arama (Genişlemiş İlk Arama) programı yapmam gerekiyor.Grafikte 2 düğüm arasındaki tüm yollar
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());
}
}
}
}
Sorunum ben yerine sadece tüm iki yol almak ve ben hepsini almak için benim kodda düzenlemek için bilmiyorum olmasıdır. Sorunumun girdisi şu haritaya dayanmaktadır:
Grafik yönlendirilmemiş (resimde olduğu varsayılıyor)? Öyleyse, bazı dinamik programlara bakmanız gerektiğini düşünüyorum, çünkü birçok yol bazı alt yolları paylaşacaktır. Sadece bilmek, neden tüm olası yolları istiyorsun? – aweis
Grafik, yönlendirilmemiş. BFS düzenini kullanarak düğümler arasında gitmem gerekiyor. Bilgilendirilmemiş arama ile minimum maliyeti olanı bulmak için tüm olasılıkları istiyorum. –
Tüm yolları * mi arıyorsunuz? veya * tüm en kısa yollar *? Neden kırıyorsun, 'hedefi bulduğunda? Keşfedilmeyi bekleyen başka bir çözüm de olabilir ... Ayrıca, BFS mi olmalı? I * düşünün * Iterative-Deepening DFS gibi bir şey en kısa yolları bulmak için uygulamak çok daha kolay olacak ... ama bu sadece bana olabilir: \ – amit