Binární strom

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 24. července 2018; kontroly vyžadují 9 úprav .

Binární strom  je hierarchická datová struktura , ve které každý uzel nemá více než dva potomky (děti). Obvykle se první uzel nazývá nadřazený uzel a potomci se nazývají levý a pravý potomek. Binární strom je uspořádaný řízený strom [1] .

Pro praktické účely se běžně používají dva podtypy binárních stromů – binární vyhledávací strom a binární halda .

Rekurzivní definice

Existuje následující rekurzivní definice binárního stromu (viz BNF ):

<binární strom> ::= ( <data> <binární strom> <binární strom> ) | nula .

To znamená, že binární strom je buď prázdný, nebo se skládá z dat a dvou podstromů (každý z nich může být prázdný). Zřejmým, ale důležitým faktem k pochopení je, že každý podstrom je zase také strom. Pokud má uzel oba prázdné podstromy, pak se nazývá listový uzel (vrchol listu) nebo listový (terminální) uzel [2] .

Například znázorněno vpravo na obr. 1 strom podle této gramatiky by mohl být zapsán takto:

(m (E (C (null null) nula ) (G nula (k null null) ) ) (s (p (o null null) (s null null) ) (y null null) ) )

Každý uzel ve stromu definuje podstrom , jehož je kořenem. Uzel m = (data, left, right) má dva potomky (levý a pravý) levý a pravý a podle toho dva podstromy (levý a pravý) s kořeny vlevo a vpravo [3] .

Aplikace

Mnoho užitečných datových struktur je založeno na binárním stromu:

Poznámky

  1. Binární strom. . vodo.ru. Získáno 1. března 2019. Archivováno z originálu dne 2. března 2019.
  2. Dřevo . Získáno 1. března 2019. Archivováno z originálu dne 2. března 2019.
  3. Binární vyhledávací stromy: Úvod . algolist.manual.ru. Staženo 1. března 2019. Archivováno z originálu 14. července 2019.

Odkazy