I_R_W14_M41B_C++ Reprezentacja grafów
Wiemy już, że każdy graf składa się z dwóch zbiorów: zbioru wierzchołków i zbioru krawędzi. Przechowywanie obu zbiorów w pamięci programu w postaci zwykłych tablic jest bardzo nieefektywne, ponieważ gdybyśmy chcieli sprawdzić, czy w grafie istnieje dana krawędź, trzeba by było przeszukać całą tablicę krawędzi. W niektórych algorytmach, gdzie sprawdzanie sąsiedztwa dwóch wierzchołków wykonuje się dość często, reprezentacja ta bardzo spowalniałaby program.
Aby tego uniknąć, wykorzystuje się znacznie efektywniejsze sposoby reprezentacji grafów. W tym e‑materiale poznamy trzy najczęściej stosowane – macierz sąsiedztwa, listę sąsiedztwa oraz macierz incydencji.
Ćwiczenie na rozgrzewkę
Scharakteryzujesz, czym są macierz sąsiedztwa, lista sąsiedztwa i macierz incydencji, oraz wyjaśnisz, jak za ich pomocą przedstawić dany graf.
Wskażesz zalety każdej z poznanych reprezentacji.
Przeanalizujesz reprezentacje grafów nieskierowanych i skierowanych, multigrafów oraz grafów ważonych.