Binárny strom je hierarchická dátová štruktúra, v ktorej má každý uzol nula, jedno alebo nanajvýš dve deti. Každý uzol obsahuje „ľavý“ ukazovateľ, „pravý“ ukazovateľ a dátový prvok. Ukazovateľ „root“ predstavuje najvyšší uzol v strome. Každý uzol v dátovej štruktúre je priamo spojený s ľubovoľným počtom uzlov na oboch stranách, označovaných ako deti. Nulový ukazovateľ predstavuje binárny strom. Neexistuje nijaké konkrétne poradie, ako majú byť uzly usporiadané v binárnom strome. Uzly bez detských uzlov sa nazývajú listové uzly alebo externé uzly.
Jednoducho povedané, definuje organizovanú funkciu označovania na uzloch, ktoré zase každému uzlu priradia nejakú náhodnú hodnotu. Všetko, čo má dve deti a jeden rodičovský uzol, je binárny strom. Binárne stromy sa používajú na ukladanie informácií, ktoré tvoria hierarchiu, napríklad systém súborov na vašom osobnom počítači. Na rozdiel od polí nemajú stromy hornú hranicu počtu uzlov, pretože sú prepojené pomocou ukazovateľov, napríklad prepojených zoznamov. Medzi hlavné funkcie binárneho stromu patrí zastupovanie hierarchických údajov, triedenie zoznamov údajov, zabezpečenie efektívnych operácií vkladania / odstraňovania atď. Stromové uzly sú zastúpené pomocou štruktúr v C.
Binárny vyhľadávací strom je typ štruktúry binárnych stromov, v ktorej sú uzly usporiadané v poradí, preto sa tiež nazývajú „usporiadaný binárny strom“. Je to dátová štruktúra založená na uzloch, ktorá poskytuje efektívny a rýchly spôsob triedenia, získavania a vyhľadávania údajov. Pre každý uzol musia byť prvky v ľavom podstrome menšie alebo rovnaké ako kľúč v jeho nadradenom uzle (LP). Nemali by existovať duplicitné kľúče. Jednoducho povedané, je to špeciálny druh dátovej štruktúry binárnych stromov, ktorý efektívne ukladá a spravuje položky v pamäti.
Umožňuje rýchly prístup k informáciám, vkladanie a odstraňovanie údajov a môže sa použiť na implementáciu vyhľadávacích tabuliek, ktoré umožňujú vyhľadávanie položiek podľa ich jedinečných kľúčov, napríklad vyhľadávanie telefónneho čísla osoby podľa mena. Unikátne kľúče sú usporiadané usporiadaným spôsobom, takže vyhľadávanie a ďalšie dynamické operácie by sa mohli vykonávať pomocou binárneho vyhľadávania. Podporuje tri hlavné operácie: vyhľadávanie prvkov, vkladanie prvkov a odstraňovanie prvkov. Binárny vyhľadávací strom umožňuje rýchle načítanie prvkov uložených v strome, pretože každý kľúč uzla je dôkladne porovnávaný s koreňovým uzlom, ktorý zahodí polovicu stromu.
Binárny strom | Binárny vyhľadávací strom |
Binárny strom je špecializovaná forma stromu, ktorá predstavuje hierarchické údaje v stromovej štruktúre. | Binárny vyhľadávací strom je typ binárneho stromu, ktorý udržuje kľúče v zoradenom poradí pre rýchle vyhľadávanie. |
Každý uzol musí mať nanajvýš dva podriadené uzly, pričom každý uzol je spojený z presne jedného ďalšieho uzla smerovanou hranou. | Hodnota uzlov v ľavom podstromu je menšia alebo sa rovná hodnote koreňového uzla a uzly na pravom podstrome majú hodnoty väčšie alebo rovnaké ako hodnota koreňového uzla.. |
Neexistuje relatívny poriadok, ako by mali byť uzly usporiadané. | Z toho vyplýva definitívne poradie usporiadania uzlov v strome. |
Je to v podstate hierarchická dátová štruktúra, ktorá je súborom prvkov nazývaných uzly. | Je to variant binárneho stromu, v ktorom sú uzly usporiadané v relatívnom poradí. |
Používa sa na rýchle a efektívne vyhľadávanie údajov a informácií v stromovej štruktúre. | Používa sa hlavne na vkladanie, mazanie a vyhľadávanie prvkov. |
Zatiaľ čo obidva simulujú hierarchickú stromovú štruktúru predstavujúcu kolekciu uzlov, pričom každý uzol predstavuje určitú hodnotu, navzájom sa od seba líšia v tom, ako sa dajú implementovať a využívať. Binárny strom sa riadi jedným jednoduchým pravidlom, že každý rodičovský uzol nemá viac ako dva podriadené uzly, zatiaľ čo strom binárneho vyhľadávania je iba variantom binárneho stromu, ktorý sleduje relatívne poradie usporiadania uzlov v strome..