Все пути между двумя узлами в графе

Мне нужно сделать программу неинформированного поиска (поиска в ширину), которая берет два узла и возвращает все пути между ними.

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());
                    }
                }
            }
        }

Моя проблема в том, что я получаю только два пути вместо всех, и я не знаю, что нужно отредактировать в моем коде, чтобы получить их все. Ввод моей проблемы основан на этой карте:map

5
задан Community 8 February 2017 в 14:35
поделиться