Što je binarno stablo?

Binarno stablo je vrsta strukture podataka koja se koristi u računalnom programiranju za pohranu, sortiranje i pristup informacijama. Binarna stabla su najjednostavnija vrsta stabala, ali su vrlo korisna i jednostavna za implementaciju. Tipična implementacija binarnog stabla oslanja se na korijenski čvor povezan s nizom čvorova koji čine samo stablo varijablama pokazivača. Ova vrsta stabla dobila je ime po činjenici da nijedan čvor unutar stabla ne može imati više od dvoje djece.

Strukture podataka stabla dolaze u mnogim varijantama. Sastoje se od različitih čvorova koji su organizirani u hijerarhijskom obrascu. Jedan čvor, korijen, je pristupna točka kroz koju se može pretraživati ​​cijelo stablo podataka ili na drugi način manipulirati. Ovaj korijenski čvor ukazuje na gornji čvor unutar samog stabla.

Svaki čvor unutar stabla, osim najvišeg čvora, imat će roditeljski čvor koji se nalazi iznad njega u hijerarhiji stabla. Također može imati podređene čvorove, koji se nalaze ispod njega. Danom čvoru se pristupa preko onih iznad njega u stablu i omogućuje pristup onima ispod njega.

Strukture podataka binarnog stabla dopuštaju da svaki čvor nema više od dva djeteta. Zadani čvor stoga može imati nula, jedan ili dva podređena čvora. Obična binarna stabla dopuštaju čvorove s bilo kojim brojem djece u bilo kojoj točki stabla. Također ne postavljaju ograničenja na to kako su raspoređene vrijednosti pohranjene u čvorovima koji čine stablo.

Strukture podataka su najkorisnije kada poboljšavaju brzinu kojom se podacima može pristupiti računalom, a modificirane verzije binarnih stabala koriste se za poboljšanje njihove učinkovitosti. Binarno stablo pretraživanja je ono u kojem sve vrijednosti podataka koje se nalaze na lijevoj silaznoj grani od danog čvora imaju vrijednosti jednake ili manje od vrijednosti pohranjene u tom čvoru. Vrijednosti na desnoj strani čvora u uređenom binarnom stablu moraju, zauzvrat, biti veće od vrijednosti u osnovnom čvoru. Ovaj poredak podataka omogućuje pisanje mnogo učinkovitijeg algoritma pretraživanja.

Oblik binarnog stabla također je važan u određivanju učinkovitosti algoritma pretraživanja. Najmanje učinkovita varijanta binarnog stabla je ona u kojoj svaki čvor ima samo jedno dijete. Računalo će možda trebati ispitati svaku stavku podataka u cijelom stablu da locira jedan dio informacije u ovoj konfiguraciji. Najučinkovitije binarno stablo, nasuprot tome, je ono u kojem svaki čvor osim onih na dnu stabla ima dva djeteta i gdje su svi čvorovi lista, donji čvorovi u stablu, na istoj udaljenosti od korijena.