You are on page 1of 11

STRUKTURE

PODATAKA I ALGORITMI

ureeno binarno stablo


obilasci
provjera
rotacije
balansiranost

Strukture podataka i algoritmi

2012/2013

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - OBILASCI


Obilazak u bilo kojoj strukturi podataka podrazumijeva proces posjeivanja
svakog vora u strukturi tono jednom, a s ciljem utvrivanja vrijednosD u tom
voru.
U vezanoj lisD ili nizu, obilazak je uvijek isD
- kreni od prvog vora
- posjeD ga
- prei na idui vor
- i tako sve dok ne doemo do kraja

U stablu je, ba radi prirode same strukture, obii vorove mogue na vie
naina.

Strukture podataka i algoritmi

2 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - OBILASCI


Poevi s korijenom stabla, mogua su tri razliita koraka
- posjeDD vor
- oDi do lijevog djeteta
- oDi do desnog djeteta

Ovisno o tome razmatraju li se prvo potomci po dubini (sin/unuk/praunuk) ili


potomci na istoj razini (braa) razlikujemo pretraivanje
- po dubini
- po irini

Pretraivanje po dubini se jo dodatno dijeli na


- preorder - korijen se razmotri prije lijevog djeteta
- inorder - korijen se razmotri nakon lijevog a prije desnog djeteta
- postorder - korijen se razmotri nakon lijevog i nakon desnog djeteta

Strukture podataka i algoritmi

3 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - OBILASCI


Preorder
- posjeD
- idi lijevo
- idi desno

Inorder
- idi lijevo
- posjeD
- idi desno

Postorder
- idi lijevo
- idi desno
- posjeD

Strukture podataka i algoritmi

4 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - OBILASCI


Pretraivanje po irini podrazumijeva da se razmotre svi vorovi na istoj razini
prije prelaska na niu razinu
Takoer podrazumijeva upotrebu pomone strukture podataka, i to najee
stoga, a zgodno je i prvo odrediD visinu/dubinu stabla
levelorderAux(tree, level)
begin
if tree is null, return;
if level is 1, then
print(tree.root);
else if level greater than 1, then
levelorderAux(tree.left_subtree, level-1);
levelorderAux(tree.right_subtree, level-1);
endif
end
levelorder(tree)
begin
for d = 1 to height(tree)
levelorderAux(tree, d);
endfor
end

Strukture podataka i algoritmi

5 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - PROVJERA


Ureeno binarno stablo po svojoj deniciji
- ne dozvoljava unos duplikata
- u lijevoj grani podrazumijeva vor manji od korijena
- u desnoj grani podrazumijeva vor vei od korijena

Kako provjeriD za neko binarno stablo je li ono ureeno?

Strukture podataka i algoritmi

6 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - PROVJERA


Ureeno binarno stablo po svojoj deniciji
- ne dozvoljava unos duplikata
- u lijevoj grani podrazumijeva vor manji od korijena
- u desnoj grani podrazumijeva vor vei od korijena

Kako provjeriD za neko binarno stablo je li ono ureeno?


- ako je minimum lijeve grane vei od trenutnog korijena - ne valja
- ako je maksimum desne grane manji od trenutnog korijena - ne valja
- ako lijevo podstablo nije ureeno - ne valja
- ako desno podstablo nije ureeno - ne valja

Strukture podataka i algoritmi

7 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - ROTACIJA


Rotacija je operacija na binarnom stablu koja mijenja strukturu ali ne utjee na
poredak vorova.
Rotacija jedan vor pomie na gornju razinu a drugog pomie na donju.
KorisD se za oblikovanje stabla, posebice za smanjenje njegove ukupne visine.
- ovo za rezultat ima poboljanje u performansama mnogih operacija nad binarnim stablom

Razlikujemo lijevu i desnu rotaciju

Strukture podataka i algoritmi

8 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - DESNA ROTACIJA

Strukture podataka i algoritmi

9 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - LIJEVA ROTACIJA

Strukture podataka i algoritmi

10 / 11

Odjel za Informa/ku - PMFST

UREENO BINARNO STABLO - BALANSIRANOST


Za stablo kaemo da je balansirano ako za svaki njegovo vor, apsolutna razlika
u visini njegovog lijevog i desnog podstabla nije vea od 1
Stabla se mogu balansiraD
- pri unosu (vie o tome idui put)
- naknadno (upotrebom rotacija)

Kako provjeriD je li stablo balansirano?

Strukture podataka i algoritmi

11 / 11

Odjel za Informa/ku - PMFST

You might also like