C# grafy BFS wyświetlenie najkrótszej drogi między dwoma punktami

Witam,

od tygodnia siedzę nad programem, który ma wyświetlić najkrótszą drogę między dwoma wierzchołkami grafu metodą poszukiwania wszerz BFS. Program jak i algorytm BFS mam napisany, tylko nie wiem jak mam wyświetlić tą drogę.

Link do mojego kodu

Będę bardzo wdzięczny za pomoc, ponieważ wszelkie pomysły mi się wyczerpały :frowning:

Z tego co widzę jest to konsolowy, o ile mnie pamięć nie myli to ja po prostu na studiach zrobiłem to tak dla drogi pomiędzy wierzchołkami c i g:

c -> a -> d -> g

1 polubienie

Tak, ale to jest graf skierowany, a ja mam w poleceniu graf nieskierowany

c - a - d - g

Nie ma za co :wink:

Nie chodzi mi hindus o to jak wygląda graf nieskierowany, tylko jak przedstawić drogę w ekranie konsoli z jednego punktu do drugiego. Np. Skoro w algorytmie znalazłem, że istnieje droga to jak ją wyświetlić, żeby nie wyświetlać “ślepych zaułków” tylko bezpośrednio drogę do szukanego wierzchołka

Gdzie tu widzisz ślepe zaułki? Czy to nie jest bezpośednia droga do szukanego wierzchołka? :smiley:

Tak, ale rozchodzi mi się jak to zapisać w kodzie

Najpierw szukasz najkrótszej drogi (są różne algorytmy) jak ją już masz to robisz pętle wypisującą nazwy wierzchołków które są w najkrótszej ścieżce, a między nimi dajesz spacje myślnik i znów spację. Musisz tylko wyłapać ifem ostatni wierzchołek i za nim nie wypisywać spacji, przecinka i spacji.

Czyli algorytm BFS służy tylko do sprawdzenia czy istnieje droga, a żeby ją wyświetlić trzeba użyć innego?

Jak sama nazwa wskazuje służy do przeszukiwania, a nie do wyświetlania …

1 polubienie

Dzięki :smiley: oświeciło mnie i już wiem czego mi brakowało