Podstawy programowania w Pythhonie - Wykład 11
Transkrypt
Podstawy programowania w Pythhonie - Wykład 11
Podstawy programowania w Pythhonie Wykład 11 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Cz˛estochowie 17 stycznia 2013 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythhonie 17.01.2013 1/6 Przeszukiwanie grafów nieskierowanych Klasa pomocnicza Stos – metody __init__(self) empty(self) push(self, item) top(self) pop(self) size(self) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythhonie 17.01.2013 2/6 Przeszukiwanie grafów nieskierowanych Klasa pomocnicza Kolejka – metody __init__(self) empty(self) insert(self, item) front(self) remove(self) size(self) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythhonie 17.01.2013 3/6 Przeszukiwanie grafów nieskierowanych Klasa Graph – metody __init__(self) addEdge(self, a, b) – dodawanie krawedzi ˛ show(self) – wyświetlenie grafu dfs(self) – przeszukiwanie grafu wgłab ˛ bfs(self) – przeszukiwanie grafu wszerz spanning_tree(self, a) – minimalne drzewo rozpinajace ˛ spanning_forest(self) – minimalny las rozpinajacy ˛ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythhonie 17.01.2013 4/6 Grafy nieskierowane Algorytm przechodzenia grafu „wgłab” ˛ w pseudokodzie # Przechodzenie metoda˛ "wgłab" ˛ wszystkich # wierzchołków grafu osiagalnych ˛ z wierzchołka A def dfs(A): ODWIEDZONE = pusty zbiór wierzchołków utwórz pusty stos S włóż na stos S wierzchołek A while stos S nie jest pusty: pobierz z S wierzchołek do zmiennej B if B nie znajduje si˛ e w zbiorze ODWIEDZONE: wypisz wierzchołek B dodaj wierzchołek B do zbioru ODWIEDZONE włóż na stos S wszystkich nieodwiedzonych sasiadów ˛ wierzchołka B dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythhonie 17.01.2013 5/6 Grafy nieskierowane Algorytm przechodzenia grafu „wszerz” w pseudokodzie # Przechodzenie metoda˛ "wszerz" wszystkich # wierzchołków grafu osiagalnych ˛ z wierzchołka A def bfs(A): ODWIEDZONE = pusty zbiór wierzchołków utwórz pusta˛ kolejk˛ e Q wstaw do kolejki Q wierzchołek A while kolejka Q nie jest pusta: pobierz z Q wierzchołek do zmiennej B if B nie znajduje si˛ e w zbiorze ODWIEDZONE: wypisz wierzchołek B dodaj wierzchołek B do zbioru ODWIEDZONE wstaw do kolejki Q wszystkich nieodwiedzonych sasiadów ˛ wierzchołka B dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythhonie 17.01.2013 6/6