Sortowanie topologiczne

0

Witam,

Mam do zaimplementowania sortowanie topologiczne działające w dwóch etapach: obliczające dla każdego wierzchołka etykiety czasowe rozpoczęcia i zakończenia analizy oraz sprawdzające acykliczność przez zliczanie łuków powrotnych dla wybranej reprezentacji grafu. Ma ktoś pojęcie jak to ruszyc? ;]

0

Ten Twój problem jest do znalezienia w Cormenie, o ile pamiętam to rozdział 22.4.
Możesz znaleźć też o testach na acykliczność w tej pracy users.v-lo.krakow.pl/~climek/ebooki/stanczyk.pdf .
Jeżeli chodzi o sortowanie topologiczne to używasz DFSa. Musisz mieć jedną zmienną time = 0 oraz każdemu wierzchołkowi przypisujesz kolejno zwiększaną o 1 wartość time: czas rozpoczęcia przetwarzania d[v] (pierwszy raz do niego wchodzisz) i czas zakończenia f[v] (przetworzyłeś już wszystkich jego sąsiadów i wychodzisz).
Jak wykonujesz DFS z uzupełnianiem f[v] to jak tylko jakiś przetworzysz to wstawiasz go na początek listy.
Jak wstawisz wszystkie to masz już na liście porządek liniowy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1