Czym jest graf?
Lekcja 2 z 14 w kursie Grafy – struktury danych, seria nr 9 w Coddy.
Graf to struktura danych, która modeluje zbiór rzeczy i połączenia między nimi. Rzeczy nazywamy wierzchołkami (lub węzłami), a połączenia — krawędziami.
Grafy są wszędzie. Sieci społecznościowe to grafy (ludzie są wierzchołkami, a znajomości — krawędziami). Mapy dróg to grafy (skrzyżowania są wierzchołkami, a ulice — krawędziami). Internet, drzewa zależności i mapy gier to również grafy.
W tym kursie skupimy się na grafie nieskierowanym: jeśli krawędź łączy u i v, to v jest również połączony z u. Nie ma kierunku. Dla uproszczenia jako kluczy wierzchołków użyjemy liczb całkowitych.
Wewnątrz będziemy przechowywać graf jako listę sąsiedztwa: mapę, która przyporządkowuje każdemu wierzchołkowi listę jego sąsiadów. Dzięki temu pobranie sąsiadów wierzchołka wymaga jednego dostępu do mapy, czego potrzebuje większość algorytmów grafowych.
Operacje, które zaimplementujemy w naszej klasie Graph, to:
- addVertex: Dodaj nowy wierzchołek, który nie ma jeszcze żadnych krawędzi.
- addEdge: Połącz dwa wierzchołki.
- hasEdge: Sprawdź, czy dwa wierzchołki są połączone.
- getNeighbors: Pobierz listę sąsiadów wierzchołka.
- removeEdge: Usuń połączenie między dwoma wierzchołkami.
- size: Policz, ile wierzchołków ma graf.
Zbudujmy klasę Graph!
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Wszystkie lekcje w sekcji Grafy – struktury danych, seria nr 9
Poćwicz samodzielnie: Kompilator C online