MOKIP 15 X 2012 (gr. podstawowa)
Algorytmy grafowe DFS, BFS
1. Przypomnienie z poprzednich zajęć:
- czym jest graf G = (V, E)
- własności grafu (skierowany, nieskierowany, ważony, nieważony, spójny, …)
2. Sposoby przechowywania grafu w pamięci:
a) STL'owy vector
- dobry nawet dla dużych grafów
- w miarę szybkie sprawdzanie znajomych wierzchołka 'u'
b) macierz n*n:
- 1 jeśli jest krawędź, 0 w przeciwnym wypadku
- bardzo szybki, sprawdzanie czy istnieje krawędź w czasie O(1)
- dobry dla grafów < 100 000, potem zajmuje za dużo miejsca
3. DFS (Deep First Search - przeszukiwanie w głąb) i zastosowania:
- pseudokod rekurencyjny
- tablica visited [n], kolorowanie grafu (umożliwia wykrywanie cykli)
- umożliwia obliczenie tablicy: pre/in/post-order i innych…
4. BFS (Breadth First Search - przeszukiwanie wszerz) i zastosowania:
- odnalezienie najkrótszej ścieżki między więrzchołkiem startowym a wszystkimi pozostałymi (tylko dla jednostkowych/takich samych wag krawędzi)
- sprawdza czy graf jest dwudzielny (czy istnieje cykl Hamiltona)
5. Zadanie a w razie problemów rozwiązanie (już wkrótce :)
wersja strony: 8, ostatnia edycja: 16 Oct 2012 19:34