Professional Documents
Culture Documents
Binarno Stablo
Binarno Stablo
BINARNO STABLO
Kandidat: Mentor:
Marija Matijević prof. dr Nevzudin Buzađija
(PT-60/19) ass. Nehad Gaši
STABLA....................................................................................................................4
Obilazak stabla.......................................................................................................5
BINARNO STABLO.................................................................................................7
ČVOR.........................................................................................................................8
Slike........................................................................................................................8
Složenost................................................................................................................8
PRETRAŽIVANJA....................................................................................................9
Karakteristike BST-a..............................................................................................9
Traženje u BST-u...................................................................................................9
SAMOBALANSIRAJUĆA STABLA.....................................................................12
ROTACIJE...............................................................................................................13
AVL STABLA.........................................................................................................14
CRVENO-CRNA STABLA.....................................................................................15
ZAKLJUČAK..........................................................................................................16
LITERATURA.........................................................................................................17
UVOD
dani u nedjelji
Binarno stablo – stablo u kojem svaki čvor ima najviše dvoje djece.
Braća – čvorovi u stablu koji su djeca istog roditelja. U binarnom stablu čvor nema
više od jednog brata.
Čvor – osnovna jedinica građe svakog stabla. Povezana je vezama s ostalim
čvorovima.
Dijete / sin – su svi čvorovi koji su povezani vezom s danim čvorom, a nalaze se na
nižem stupnju hijerarhijske ljestvice, tj. podređeni su danom čvoru.
Djed – čvor koji je otac oca trenutnog čvora.
Dubina (visina) čvora – broj čvorova koje moramo proći od korijena stabla do
danog čvora.
Korijen stabla – čvor koji nema roditelja.
List – čvor koji nema djece.
Potpuno balansirano stablo – stablo u kojem su svi listovi na istoj visini.
Roditelj / otac – čvor kojemu je dati čvor dijete.
Unuk – svi čvorovi koji su djeca sve djece danog čvora.
Veza – poveznica koja spaja dva čvora na različitim (uzastopnim) stupnjevima
hijerarhijske ljestvice. U grafičkom obliku zapisa to je crta koja povezuje dva
čvora.
Obilazak stabla
Obilazak stabla je algoritam kojim posjećujemo čvorove stabla, tako da svaki čvor
posjetimo tačno jednom. To je potrebno ako želimo obaviti neku obradu nad svim
čvorovima (npr. ispisati oznake).
Najpoznatiji obilasci su:
PREORDER
INORDER
POSTORDER
Slika 2 Stablo T
POSTORDER( ) . . . najprije obilazi T1, zatim obilazi T2, . . ., zatim obilazi Tk, na
kraju posjećuje r.
Razlike između tri obilaska vide se iz primjera:
Binarno stablo je struktura podataka koja se predstavlja kao stablo u kojem niti
jedan čvor nema više od dvoje djece. Također, korijen stabla je samo jedan, tj. na vrhu
smije biti samo jedan element. Slika 1 nije primjer binarnog stabla, dok Slika 4 to jeste.
enciklopedija
nauka kultura
umjetnost historija
U binarnom stablu svaki čvor ima tačno jednog roditelja, s izuzećem korijena
stabla, koji nema roditelja. Nadalje, svaki čvor ima najviše dvoje djece – čvorova kojima je
on roditelj.
ČVOR
Kako bismo se lakše snalazili u ovoj radnji, biće potrebno napraviti neke dogovore
kojih ćemo se pridržavati cijelom radnjom.
• Vrijednost (v)
• Lijevo dijete (l)
• Desno dijete (d)
• Roditelj (roditelj)
• Broj elemenata u podstablu (n)
• Broj istih elemenata (brojač)
Ako su još neki podatci potrebni za neku od opisanih struktura, to će biti posebno
naglašeno u tekstu koji opisuje tu strukturu.
Slike
Čvor ćemo predstavljati sivom bojom, osim ako u tekstu nije drugačije naznačeno.
Veze predstavljamo crnim linijama, osim ako u tekstu nije drugačije naznačeno.
Složenost
Složenost svakog algoritma biće napisana u veliko-O notaciji, osim ako u tekstu
nije drugačije naznačeno. Veliko-O notacija (ili samo O notacija) jeste način zapisivanja
neke funkcije u kojoj zanemarujemo sve osim najjače potencije
.
Slika 5 Primjer
PRETRAŽIVANJA
Binarno stablo traženja (BST – engl. binary search tree) je struktura podataka koja
zadovoljava sljedeća svojstva:
Karakteristike BST-a
Tablica 1 Karakteristike
Kao što se može vidjeti iz Tablice 1, razlika između prosječnog i najgoreg slučaja
poprilično je velika. To je razlog zašto se često koriste strukture koje imaju bolju složenost
u najgorim slučajevima.
Traženje u BST-u
nadji(sad, x):*cvor
ako je sad == 0
vrati 0
ako je sad->vrijednost == x
vrati sad
ako je sad->vrijednost < x
vrati nadji(sad->d, x)
vrati nadji(sad->l, x)
Kod:
ubaci(sad,x)
ako je sad == 0
sad = novi cvor(x)
izadi van
povecaj sad->n
ako je sad->vrijednost == x
povecaj sad->brojac
izadi van
ako je sad->vrijednost < x
ubaci(sad->d,x)
inace
ubaci(sad->l,x)
ispiši(sad)
ako je sad == 0
izadi van
ispiši(sad->l)
za svaki i∈[1,sad->brojac]
piši sad.vrijednost
ispiši(sad->d)
SAMOBALANSIRAJUĆA STABLA
Prvu takvu ideju imali su Gregorij Adelson-Velskij i Evgenij Landis. Oni su 1962.
kreirali stablo koje se balansira po dubini podstabla te je to stablo po njima nazvano AVL
stablom. Kako je to običaj u svim naukama, nije se stalo na tom otkriću, nego se dalje
nastavilo sa radom te su već nakon desetak godina razvijene razne slične strukture
podataka. Danas, upravo zahvaljujući radu tih pionira računarske nauke, postoji cijeli niz
samobalansirajućih binarnih stabala. Uz gore spomenuto AVL stablo, medu jednostavnija
samobalansirajuća binarna stabla ubrajamo crveno-crna stabla i raširena stabla te razne
njihove modifikacije.
Postoji samo jedan tip rotacije koji koriste sva balansirajuća binarna stabla, a to je
rotacija veze roditelja i djeteta. Može se manifestovati na dva načina:
AVL stablo, kao i sva ostala samobalansirajuća binarna stabla nam osigurava brzo
izvršavanje jednostavnih operacija. Vrlo je rigidno balansirano, no o tome više nešto
kasnije.
U AVL stablo ubacuje se jednako kao i u binarno stablo, samo što se na kraju
rekurzije još pozove funkcija popravi. Ta funkcija popravlja stablo tako da vrijedi 3.
svojstvo AVL stabala. Kako bismo si olakšali posao, napravit ćemo funkciju osvježi čvor
koja će za dani čvor ponovo izračunati visinu podstabla i podatak o balansiranosti. Nju
moramo pozvati i na kraju svake rotacije. Funkcija popravi prima čvor te prvo osvježi
podatke u njemu. Nakon toga, ako je podatak o balansiranosti veći od 1 po apsolutnoj
vrijednosti, stablo nije balansirano pa ga treba popraviti. Imamo stoga 2 (u biti 4) slučaja:
1. Podatak je jednak
Crveno crna stabla služe kao podloga strukturama koje nalazimo u standardima
modernih programskih jezika.
Problemi koje već gotove strukture rješavaju su u biti dosta teški, a ako i nisu
teški onda su barem naporni. Primjer za to jeste izbacivanje duplih elemenata iz nekog
skupa.
To se može riješiti i sortiranjem, ali je puno prirodnije imati neku strukturu u koju
ćemo ubacivati elemente, a ona neće prihvatati duplikate.
Ovaj rad smatram premalim da sadržajno u potpunosti obradi sve što se i danas zna
o binarnim stablima jer su o njima napisane cijele knjige, pa je stoga nerealno za očekivati
da je moguće sažeti sve informacije na desetak stranica. Ipak, mislim da stvari koje su
odabrane su solidno obrađene te da svako ko se njima bavi ili ga one zanimaju može
shvatiti što je to stablo, kako se ono izgrađuje i ostale bitne informacije iz ovog
seminarskog rada.
LITERATURA
[1.]http://lnr.irb.hr/soya/nastava/spa-skripta.pdf
[2.]https://web.math.pmf.unizg.hr/~stojic/SPAbinarytree.pdf
[3.]https://bs.wikipedia.org/wiki/Binarno_stablo
Popis slika:
Slika 1 Primjer stabla.................................................................................................4
Slika 2 Stablo T..........................................................................................................5
Slika 3 Princip obilaska stabla....................................................................................5
Slika 4 Primjer binarnog stabla..................................................................................6
Slika 5 Primjer............................................................................................................7
Slika 6 Rotacija udesno............................................................................................12
Slika 7 Rotacija ulijevo............................................................................................12
Popis tablica:
Tablica 1 Karakteristike.............................................................................................8