Reprezentace grafů v paměti
Graf lze v paměti uchovávat třemi základními způsoby. Každý z nich je vhodný pro různé typy úloh a má odlišné nároky na časovou a paměťovou složitost.
Způsoby uložení:
- Matice sousednosti
- Seznam sousedů
- Seznam hran
Příklad grafu

1. Matice sousednosti
Matice sousednosti je čtvercová matice , kde je počet vrcholů grafu.
- Prvek indikuje existenci hrany mezi vrcholem a .
- U neorientovaného grafu je matice symetrická, tedy
- Přítomnost hrany se značí 1 a chybějící hrana se značí 0
- U ohodnoceného grafu matice obsahuje místo 0/1 přímo váhu hrany - případně 0, pokud hrana neexistuje
Výhody
- Rychlé ověření existence hrany
- Jednoduchá implementace
Nevýhody
- Paměťová náročnost i u řídkých grafů
- Neefektivní při malém počtu hran vzhledem k počtu vrcholů
Příklad

2. Seznam sousedů
Seznam sousedů ukládá ke každému vrcholu seznam vrcholů, do nichž vedou hrany.
Výhody
- Paměťová úspora u řídkých grafů , kde je počet hran
- Snadný průchod sousedy daného vrcholu
Nevýhody
- Ověření existence hrany může být až
- Složitější implementace některých algoritmů (např. hledání všech hran)
Příklad

3. Seznam hran
Seznam hran ukládá graf jako prostý seznam dvojic (nebo trojic u ohodnocených grafů) reprezentujících všechny hrany.
Výhody
- Extrémně úsporný pro ukládání hran
- Výhodný pro algoritmy, které procházejí všechny hrany (např. Kruskalův algoritmus)
Nevýhody
- Ověření existence hrany
- Složitější přístup k sousedům vrcholu
Příklad
