CS Základy: Binary Search Trees
Únor 2026
V této části jsem implementoval binární vyhledávací strom od nuly. Cíl byl jednoduchý: pochopit, proč BST nabízí rychlé vyhledávání, pokud je strom vyvážený.
Co projekt řeší
- ukládání hodnot podle pravidla menší vlevo, větší vpravo,
- operace
insert,find,delete, - průchody stromem (
inOrder,preOrder,postOrder), - výpočet výšky a hloubky uzlu,
- kontrolu vyváženosti a
rebalance.
Co bylo důležité
Největší část projektu byla práce s rekurzí. Většina metod se přirozeně řeší voláním na podstrom.
Zásadní byla i rovnováha stromu. Pokud se do BST vkládají seřazená data, struktura se degraduje na lineární seznam a výkon padá. Proto jsem doplnil rebalance, aby strom po sérii operací zůstal použitelný.
Co jsem si odnesl
- Lepší orientaci v rekurzivních algoritmech.
- Praktické pochopení rozdílu mezi vyváženým a nevyváženým stromem.
- Jistotu v implementaci základních stromových operací bez knihoven.
GitHub: projekt BST