Reprezentacja grafów

WPROWADZENIE

Dla grafów można zdefiniować podstawowe interfejsy ADT, czyli abstrakcyjnych typów danych, które będą używane przy analizowaniu algorytmów grafowych. Z drugiej strony, do reprezentacji grafu można wykorzystać różne struktury danych, takie jak macierz sąsiedztwa, lista sąsiedztwa, lista krawędzi. Pewne rodziny grafów mają inne wydajne reprezentacje (grafy przedziałowe, grafy permutacji).

Jeżeli graf prosty nieskierowany ma n wierzchołków, to liczba możliwych zbiorów krawędzi wynosi 2^{n(n-1)/2}. Stąd każda reprezentacja grafu musi używać co najmniej n(n-1)/2 bitów w najgorszym i średnim przypadku, O(n^2) bitów.

Graf skierowany

0 --o 1
o   / o
|  /  |
| o   |
2 --o 3