Kaj je binarno drevo?

Binarno drevo je vrsta podatkovne strukture, ki se uporablja v računalniškem programiranju za shranjevanje, razvrščanje in dostop do informacij. Binarna drevesa so najpreprostejša vrsta dreves, vendar so zelo uporabna in enostavna za izvedbo. Tipična izvedba binarnega drevesa se opira na korensko vozlišče, povezano z vrsto vozlišč, ki sestavljajo drevo samo s kazalnimi spremenljivkami. Ta vrsta drevesa je dobila ime po tem, da nobeno vozlišče znotraj drevesa ne more imeti več kot dveh otrok.

Drevesne podatkovne strukture so na voljo v številnih različicah. Sestavljeni so iz različnih vozlišč, ki so organizirana v hierarhičnem vzorcu. Eno samo vozlišče, koren, je dostopna točka, prek katere je mogoče iskati po celotnem podatkovnem drevesu ali kako drugače manipulirati. To korensko vozlišče kaže na zgornje vozlišče znotraj samega drevesa.

Vsako vozlišče znotraj drevesa, razen najvišjega vozlišča, bo imelo nadrejeno vozlišče, ki se nahaja nad njim v hierarhiji drevesa. Ima lahko tudi otroška vozlišča, ki se nahajajo pod njim. Do določenega vozlišča se dostopa prek tistih nad njim v drevesu in omogoča dostop do tistih pod njim.

Podatkovne strukture binarnega drevesa omogočajo, da ima vsako vozlišče največ dva otroka. Dano vozlišče ima tako lahko nanj priključenih nič, eno ali dve podrejeni vozlišči. Navadna binarna drevesa omogočajo vozlišča s poljubnim številom otrok na kateri koli točki drevesa. Prav tako ne omejujejo, kako so urejene vrednosti, shranjene v vozliščih, ki sestavljajo drevo.

Podatkovne strukture so najbolj uporabne, če izboljšajo hitrost, s katero lahko računalnik dostopa do podatkov, in se za izboljšanje njihove učinkovitosti uporabljajo spremenjene različice binarnih dreves. Binarno iskalno drevo je tisto, v katerem imajo vse vrednosti podatkov, ki se nahajajo na levi padajoči veji od danega vozlišča, vrednosti, ki so enake ali manjše od vrednosti, shranjene v tem vozlišču. Vrednosti na desni strani vozlišča v urejenem binarnem drevesu morajo biti večje od vrednosti v osnovnem vozlišču. To razvrščanje podatkov omogoča pisanje veliko učinkovitejšega iskalnega algoritma.

Oblika binarnega drevesa je pomembna tudi pri določanju učinkovitosti iskalnega algoritma. Najmanj učinkovita sorta binarnega drevesa je tista, v kateri ima vsako vozlišče samo en otrok. Računalnik bo morda moral pregledati vsak element podatkov v celotnem drevesu, da bi našel en sam kos informacij v tej konfiguraciji. Nasprotno pa je najučinkovitejše binarno drevo tisto, pri katerem ima vsako vozlišče, razen tistih na dnu drevesa, dva otroka in kjer so vsa listna vozlišča, spodnja vozlišča drevesa, na enaki razdalji od korena.