Professional Documents
Culture Documents
Baza Podataka Struktura Podataka Oop Uvod U Algoritme
Baza Podataka Struktura Podataka Oop Uvod U Algoritme
Baza Podataka Struktura Podataka Oop Uvod U Algoritme
1/22
%regled preda!anja
Stabla
definicija i terminologija
doda!anje $!ora
2/22
Stabla
Stablo& usmjerena acikli$na struktura po!e anih $!oro!a' usmjerena& (ma !e u samo u jednom smjeru
acikli$na& ako krenemo od jednog $!ora# nema pute!a koji !ode do tog istog $!ora odakle smo krenuli' )sim toga# do s!akog $!ora se mo*e do+i samo na jedan na$in# jednim putem' porodi$no stablo organi aciona struktura firme i sl' umjetna inteligencija& stablo odluka kompajleri& stablo parsiranja'''
%rimjeri stabala&
3/22
4/22
Terminologija
korijen (root)& $!or na !rhu stabla' 2ema roditelja' list (leaf)& $!or koji nema djece' grana (branch)&
s!aki unutra3nji $!or koji nije niti korijen niti list' $!or koji ima !e u do trenutnog $!ora' S!aki $!or# osim korijena# ima ta$no jednog roditelja' $!or na koji trenutni $!or ima !e u $!or koji ima ajedni$kog roditelja sa trenutnim $!orom
roditelj (parent)&
dijete (child)&
brat (sibling)&
5/22
Terminologija
korijen (root)
1 2 4 5 6 3 7
vor
Fakultet elektrotehnike Univerziteta u Tuzli
veza
6/22
Terminologija
podstablo (subtree)& stablo sa $!oro!ima do kojih se dola i preko jedne !e e od trenutnog $!ora' S!aki $!or se mo*e smatrati korijenom podstabla kome pripadaju njego!a djeca# unuci itd'
visina (height)& du*ina najdu*eg puta od trenutnog $!ora do najudaljenijeg lista nivo ili dubina (level)& put od korijena do nivo 1 datog $!ora
nivo 2
korijen
visina = 3
1 2 4 5 6 3 7
7/22
nivo 3
Fakultet elektrotehnike Univerziteta u Tuzli
8/22
9/22
Binarna stabla
<ubina je prosje$nog binarnog stabla je mnogo manja od 2# mada u najgorem slu$aju mo*e i nositi 2"4
1 /22
11/22
Binarna stabla se ugla!nom implementiraju pomo+u po!e anih $!oro!a' Taka! $!or ima element u koji se smje3ta podatak i d!ije !e e (poka i!a$i) na d!oje s!oje djece (lije!o# desno)'
lijevo element podaci desno
12/22
left
data ri !t 42
left
data ri !t 5"
left
13/22
>od o!og stabla su !rijednosti elemenata unutar $!oro!a poredani tako da se operacije ubaci!anja# uklanjanja i pretra*i!anja mogu i !oditi efikasno' >lju$& dio elementa koji je kriterij pretra*i!anja ?a s!aki $!or @# s!i klju$e!i u lije!om podstablu su manji od !rijednosti klju$a $!ora @# a s!i klju$e!i u desnom podstablu su !e+i od klju$a u @'
14/22
%#"&'"( )*&%+(
15/22
16/22
Tra*enje $!ora sa datom !rijedno3+u elementa %rola ak kro stablo (npr' ispis s!ih elemenata) Ubaci!anje no!og elementa ($!ora) Uklanjanje postoje+eg elementa ($!ora)
17/22
Tra*imo A& 4' %oredimo A&46 (korijen) .B idi u lije!o podstablo 9' %oredimo A&7 .B idi u desno podstablo :' %oredimo A&8 .B idi u desno podstablo 5' %oredimo A&4: .B idi u lije!o podstablo 6' %oredimo A&A .B %-)2ACD2)E
18/22
%rola ak kro s!e elemente stabla' )!aj proces se koristi u mnogim algoritmima sa stablima' 2aj$e3+i na$ini prolaska kro stablo (prema redoslijedu procesiranja podatka u $!oru)& pre order: procesira se $!or pa onda lije!o pa desno podstablo tog $!ora in order: procesira se lije!o podstablo pa onda $!or pa desno podstablo post order:
12 5 2 " 15 1# 1"
18 15 19
15 18 18
19 19 12
2 /22
korijen
2acrtati putanju oko stabla' >ad proete pored $!ora sa pra!e strane# procesirati ga'
12 5 2 " 15 1# 1"
18 15 19
15 18 18
19 19 12
21/22
Ubaci!anje $!ora
%ro+i kro stablo kao kod pretra*i!anja Ako je naen @ ne raditi ni3ta (ili treba i !r3iti neko a*uriranje# a!isno od di ajna) Ako @ nije naen# ubaciti @ na adnjem $!oru pretrage'
Primjer -/acivanja /roja 13
22/22