Přejít na hlavní obsah

Jak postavit binární strom v JavaScriptu / příklady a průvodce

  • Zdenka Müller
  • Praxe

Binární dřevo - je to datová struktura, což je hierarchické stromové úložiště složené z uzlů. Každý uzel může mít maximálně dva potomky: levý a pravý. Binární stromy jsou široce používány v programování, zejména při práci s algoritmy vyhledávání, třídění a obcházení.

JavaScript je jedním z nejpopulárnějších programovacích jazyků na světě a nabízí mnoho nástrojů a technik pro práci s binárními stromy. V tomto článku vám představíme příklady a průvodce, Jak postavit binární strom v JavaScriptu.

Začneme základními koncepty binárního stromu-uzly a jejich potomky, hloubkou a výškou stromu a metodami obcházení stromu. Poté se podíváme na různé způsoby, jak vytvořit a změnit binární strom na JavaScript pomocí rekurze a iterace.

Při čtení tohoto článku se naučíte, jak vytvořit binární strom v JavaScriptu, přidávat a odstraňovat uzly, vyhledávat a třídit a provádět různé operace obcházení stromu, jako je předpona, infixní a postfixové pořadí obcházení.

Co je binární strom a proč je potřeba?

Jedním z hlavních úkolů, které lze řešit pomocí binárního stromu, je organizace a správa velkého množství dat. Binární strom vám umožňuje efektivně ukládat a zpracovávat informace a provádět vyhledávání, vkládání a odstraňování položek rychlými operacemi.

Binární stromy jsou také široce používány v třídicích algoritmech, jako je třídění fúzí a třídění binární vložky. Umožňují efektivní uspořádání dat a nalezení správných prvků v seřazeném poli.

Dalším důležitým použitím binárních stromů je reprezentace hierarchické datové struktury. Například v počítačové grafice se binární stromy používají ke stavbě scény nebo stromu objektů.

Stavba binárního stromu

K vytvoření binárního stromu v JavaScriptu lze použít objekty nebo třídy. Jedním z jednoduchých způsobů je použití třídy k reprezentaci uzlu stromu. Třída bude obsahovat vlastnosti pro uložení hodnoty uzlu a odkazy na levé a pravé podřízené uzly.

Proces budování binárního stromu začíná vytvořením kořenového uzlu. Každý nový uzel je pak přidán do stromu podle jeho významu. Pokud je hodnota nového uzlu menší než hodnota aktuálního uzlu, stane se levým podřízeným uzlem. Pokud je hodnota nového uzlu větší, stane se pravým podřízeným uzlem. Pokud se hodnota nového uzlu rovná hodnotě aktuálního uzlu, lze jej přidat do libovolného podřevoru.

Pro stavbu binárního stromu lze použít rekurzivní funkci. Funkce přijme aktuální uzel a novou hodnotu a poté porovná hodnoty a rekurzivně se vyvolá pro levý nebo pravý podřízený uzel v příslušné větvi stromu.

Příkladem kódu pro sestavení binárního stromu v JavaScriptu může být:

V tomto příkladu třída Node představuje uzel binárního stromu. Funkce insertNode přijímá aktuální uzel a hodnotu, kterou je třeba přidat do stromu. Rekurzivně se volá v příslušné větvi, aby přidala nový uzel.

Vytvoření binárního stromu je možné pomocí různých algoritmů a datových struktur. Výběr konkrétní metody závisí na požadavcích a vlastnostech konkrétního úkolu. Obecně se binární stromy široce používají k organizaci a vyhledávání dat a také k algoritmům třídění a obcházení stromu.

Kroky pro budování binárního stromu v JavaScriptu

Sestavení binárního stromu v JavaScriptu lze provést následujícími kroky:

  1. Vytváření uzlů: Vytvořte třídu Node, která bude představovat uzel binárního stromu. Uzel musí obsahovat data a odkazy na levého a pravého potomka.
  2. Tvorba dřeva: Vytvořte třídu BinaryTree, která bude představovat samotný binární strom. Ve třídě BinaryTree by měly být definovány metody pro přidání nového uzlu, obcházení stromu, hledání uzlu a další operace.
  3. Přidání uzlů: Pomocí metod třídy BinaryTree přidejte do stromu několik uzlů. Uzly lze libovolně přidávat.
  4. Obcházení stromu: Pomocí jednoho z algoritmů obcházení stromu (například do hloubky nebo do šířky) vyveďte strukturu stromu na obrazovku nebo proveďte určité operace s daty každého uzlu.
  5. Hledání uzlu: Pomocí metod třídy BinaryTree vyhledejte uzel s určitými daty ve stromu.

Při provádění těchto kroků budete moci postavit binární strom na JavaScriptu a provádět různé operace s jeho uzly. Použijte tyto operace k řešení problémů, které vyžadují strukturu stromu, jako je vyhledávání, třídění, vkládání a mazání položek.

Ujistěte se, že jste správně implementovali třídy Node a BinaryTree, stejně jako metody pro práci se dřevem, abyste zajistili správné fungování vašeho binárního stromu v JavaScriptu.