Obsah

Binární strom

Binární strom je nelineární datová struktura, ve které je každý prvek (uzel) spojen s nejvýše dvěma dalšími uzly, které označujeme jako levý syn a pravý syn.

Tato struktura se používá pro efektivní vyhledávání, třídění dat, reprezentaci hierarchií nebo při kompresi dat (např. Huffmanovo kódování).


Základní terminologie

Abychom pochopili práci se stromy, musíme definovat jejich části:


Typy binárních stromů

V praxi se setkáváme s různými variantami podle toho, jak jsou uzly uspořádány:

Typ Charakteristika
Plný binární strom Každý uzel má buď 0, nebo 2 potomky (nikdy jen jednoho).
Vyvážený strom Rozdíl výšek levého a pravého podstromu každého uzlu je minimální. Zajišťuje rychlé operace.
Binární vyhledávací strom (BST) Pro každý uzel platí: všechny hodnoty v levém podstromu jsou menší a v pravém větší než hodnota uzlu.

Binární vyhledávací strom (BST)

BST (Binary Search Tree) je nejpoužívanější formou binárního stromu díky své efektivitě při vyhledávání.

Jak funguje vyhledávání v BST:

Představte si, že hledáte číslo 15:

1. Začnete u kořene (např. číslo **20**).
2. Protože 15 < 20, jdete do **levého** podstromu.
3. Narazíte na uzel s hodnotou **10**.
4. Protože 15 > 10, jdete do **pravého** podstromu.
5. Narazíte na uzel **15** – prvek nalezen.

Díky tomuto principu se při každém kroku eliminujeme polovinu zbývajících dat (podobně jako u binárního vyhledávání v poli).


Průchod stromem (Traversal)

Abychom mohli se všemi daty ve stromu pracovat (např. je vypsat), musíme stromem „projít“. Existují tři hlavní způsoby:


Výhody a nevýhody

Výhody:

Nevýhody:


Související pojmy: B-strom, Indexování, Databáze, Algoritmus, Rekurze, Huffmanovo kódování.