Binární strom
Z Wikipedie, otevřené encyklopedie
Binární strom je pojem z teorie grafů a zároveň datová struktura, používaná k ukládání a vyhledávání dat v počítačích.
Binární strom je strom ve smyslu používaném v teorii grafů. Jedná se o orientovaný graf s jedním vrcholem (kořenem), z něhož existuje cesta do všech vrcholů grafu. Každý vrchol binárního stromu může mít maximálně dva orientované syny a s výjimkou kořene právě jednoho předka. Kořen předka nemá.
V praktickém programování je obvykle binární strom reprezentován dvěma způsoby:
- pomocí dynamické struktury, kde jsou hrany reprezentovány ukazateli. Takto se reprezentuje například AVL-strom
- pomocí pole, kde prvek s indexem i má následníky s indexem 2i+1 a 2i+2 (za předpokladu, že pole je indexováno od 0). Takto je například reprezentovaná halda v algoritmu heapsort.
Binární strom je nejčastěji používán jako binární vyhledávací strom a halda.
[editovat] Typy binárních stromů
- Binární strom obsahuje uzly které mají nejvýš 2 listy.
- Plný binární strom každý vnitřní uzel má dva syny.
- Vyvážený binární strom hloubka listů se od sebe liší maximálně o jedna.
- Úplný binární strom vyvážený binární strom plněný zleva. Jeden poslední vnitřní uzel nemusí být stupně k
[editovat] Vlastnosti stromů
poznámka: pro níže uvedené rovnice platí:
– hloubka stromu,
– počet uzlů,
– počet listů ,
– počet vnitřních uzlů,
– počet nillů,
- Úplný binární strom
- minimální počet uzlů získáme z rovnice
a maximální počet
. - počet nillů (NULL ukazatelů) roven
. - počet listů roven
(n/2 zaokrouhleno nahoru).
- minimální počet uzlů získáme z rovnice
- Plný binární strom
- počet uzlů získáme z rovnice
. - počet uzlů v úplném binárním získáme
.
- počet uzlů získáme z rovnice
a maximální počet
.
.
(n/2 zaokrouhleno nahoru).
.