Struktura dat grafu a Algorithms (Příklad)
⚡ Chytré shrnutí
Datová struktura grafu je nelineární soubor vrcholů a hran, kde každá hrana spojuje dvojici vrcholů. Grafy modelují sítě reálného světa, jako jsou mapy, sociální spojení a webové stránky, a podporují mnoho výkonných algoritmů.

Co je to graf v datové struktuře?
Graf je nelineární datová struktura, která se skládá z vrcholů a hran, kde vrcholy obsahují informace nebo data a hrany fungují jako spojení mezi dvojicí vrcholů.
Používá se k řešení reálných problémů, jako je nalezení nejlepší trasy k cílovému místu a trasy pro telekomunikace a sociální sítě. Uživatelé jsou v grafu považováni za uzel a vodiče jsou hrany spojující uživatele.
Pokud jsou hrany reprezentovány jako E a vrcholy jsou reprezentovány jako V, pak lze graf G zapsat jako množinu vrcholů a hran, jako např. G (V, E).
Příklad grafu v datové struktuře
Zde je jednoduchý příklad datové struktury grafu:
Jedná se o jednoduchý neorientovaný graf (jeden druh grafu). Zde je množina vrcholů: {A, B, C, D, E, F}. Dva vrcholy tvoří hranu. Například A a B jsou spojeny hranou. A a F však nejsou spojeny žádnými hranami.
Terminologie grafů v datové struktuře
Následuje několik důležitých termínů používaných v datové struktuře grafu:
| Období | Description |
|---|---|
| Vrchol | Každý datový prvek se nazývá vrchol nebo uzel. Na obrázku výše jsou vrcholy A, B, C, D a E. |
| Hrana (oblouk) | Spojovací články mezi dvěma uzly nebo vrcholy se nazývají hrana (oblouk). Má dva konce a je reprezentována jako (počátečníVrchol, koncovýVrchol). |
| Neorientovaný okraj | Je to obousměrná hrana. |
| Režie Edge | Je to jednosměrná hrana. |
| Zatížená hrana | Hrana s hodnotou. |
| Stupeň | V grafu se počet hran spojených s vrcholem nazývá stupeň. |
| Indegree | Celkový počet příchozích hran připojených k vrcholu. |
| Outdegree | Celkový počet odchozích hran připojených k vrcholu. |
| Vlastní smyčka | Hrana se nazývá vlastní smyčka, pokud se její dva koncové body shodují. |
| Sousedství | Vrcholy se nazývají sousední, pokud je mezi nimi spojena hrana. |
Typy grafů v datové struktuře
Zde je seznam těch nejběžnějších typy grafů v datové struktuře:
- Režírovaný graf
- Neorientovaný graf
- Vážený graf
- Obousměrný graf
- Nekonečný graf
- Null Graph
- Triviální graf
- Více grafů
- Kompletní graf
- Připojený graf
- Cyklický graf
- Řízený acyklický graf (DAG)
- Graf cyklu
- Bipartitní graf
- Eulerův graf
- Hamiltonův graf
Jak reprezentovat graf v datové struktuře?
Graf se obvykle ukládá do paměti pomocí jedné ze dvou reprezentací. Volba ovlivňuje, kolik paměti graf využívá a jak rychle se běžné operace provádějí.
- Matice sousednosti: Dvourozměrné pole V × V, kde buňka [i][j] má hodnotu 1 (nebo váhu hrany), pokud mezi vrcholem i a vrcholem j existuje hrana, a 0 v opačném případě. Umožňuje vyhledávání hran v O(1), ale používá prostor O(V²), takže je nejvhodnější pro husté grafy.
- Seznam sousedství: Pole seznamů, kde každý vrchol ukládá seznam svých sousedních vrcholů. Využívá prostor O(V + E) a je efektivní pro řídké grafy, což je důvod, proč ho používá většina reálných grafů.
Více si o nich můžete přečíst v seznam sousedností a maticová reprezentace grafu výukový program.
Aplikace grafové datové struktury
Graf má mnoho případů použití. Existuje mnoho algoritmů, které grafy používají. Zde jsou některé z aplikací grafů:
- Google Mapy používají grafy k nalezení průsečíku dvou silnic a k výpočtu vzdálenosti mezi dvěma místy. Například Dijkstra, pro nalezení nejkratší vzdálenosti mezi zdrojovým a cílovým místem.
- Facebook používá grafy k nalezení společných přátel uživatelů. Jeho algoritmus považuje každého uživatele za uzel grafu.
- Pro alokaci zdrojů se používá DAG (Directed Acyclic Graph). Ten kontroluje závislosti zdrojů.
- Jedno Google Vyhledávače používají grafy k vytváření pozic webových stránek.
- Mapaping Zařízení používá datovou strukturu grafu.
- A router a jeho protokol používá graf k naučení cesty k cíli.

