Binárny vyhľadávací strom
Binárny vyhľadávací strom je dátová štruktúra založená na binárnom strome, v ktorom sú jednotlivé prvky (uzly, vrcholy) usporiadané tak, aby v tomto strome bolo možné rýchlo vyhľadávať danú hodnotu.
Vyhľadávanie v strome
Hodnoty v uzloch sú usporiadané tak, že pre každý uzol stromu u platí:
- hodnota uložená v u je väčšia alebo rovná ako hodnota uložená v ľavom podstrome u
- hodnota uložená v u je menšia alebo rovná ako hodnota uložená v pravom podstrome u
Potom je možné v tomto strome jednoduchým spôsobom vyhľadať danú hodnotu h:
- nastav koreň ako aktuálny uzol (u)
- pokiaľ je v u uložená hodnota h, algoritmus končí (a vráti u)
- ak je u list, algoritmus končí (hodnota h nebola v strome nájdená)
- hodnota h sa porovná s hodnotou v u (nech je táto hodnota h')
- ak je , do u sa uloží ľavý potomok u
- inak sa do u uloží pravý potomok u
- pokračuj bodom 2
Rýchlosť vyhľadávania
Rýchlosť vyhľadávania závisí od toho, ako je strom vyvážený. Pre vyhľadanie danej hodnoty v strome ním stačí prejsť raz vyššie uvedeným spôsobom. Časová zložitosť tohto algoritmu je úmerná výške stromu. Ak má binárny strom n listov, je jeho výška (a teda aj rýchlosť vyhľadávania) rovná minimálne log2 n a maximálne n. Otázka správneho vyváženia je z tohoto pohľadu kritická a rieši ju napríklad AVL strom.
Pozri aj
- Cyklický graf
- AVL strom
- B-strom
- Binárne delenie
Externé odkazy
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.