Baza Podataka Struktura Podataka Oop Uvod U Algoritme

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

Algoritmi i strukture podataka

dr.sc. Edin Pjani

Fakultet elektrotehnike Univerziteta u Tuzli

1/22

%regled preda!anja

Stabla

definicija i terminologija

Binarna stabla Ureena binarna stabla Binary Search Tree (BST)

pretraga prola ak kro stablo tra!ersing

pre"order# in"order# post"order

doda!anje $!ora

Fakultet elektrotehnike Univerziteta u Tuzli

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&

Stabla imaju dobre performanse pri doda!anju# uklanjanju i pretra*i!anju elemenata'

Fakultet elektrotehnike Univerziteta u Tuzli

3/22

Stabla " primjeri

,ile system -a$unanje i ra a& a. (b/c)0d1


= a + b c * d

Fakultet elektrotehnike Univerziteta u Tuzli

4/22

Terminologija

vor (node)& objekat koji sadr*i podatak (element) i !e e do s!oje djece

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)&

Fakultet elektrotehnike Univerziteta u Tuzli

5/22

Terminologija

vor (node)& s!i kru*i+i na slici desno

korijen (root)& 4 list (leaf)& 5# 6# 7# 8 grana (branch)& 9# : %osmatrajmo $!or 9

korijen (root)

1 2 4 5 6 3 7

roditelj (parent): 1 dijete (child): 4, 5 brat (sibling): 3

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

;o3 jedna definicija stabla (rekur i!na)


4'Stablo je kolekcija $!oro!a 9'Stablo mo*e biti pra no :'Ako nije pra no# stablo se sastoji od jednog $!ora (korijen# root) i nula ili !i3e podstabala na $ije korijene su spojene !e e od korijena trenutnog stabla'

Fakultet elektrotehnike Univerziteta u Tuzli

8/22

Stablo mogu+a implementacija

element veze do djece

element veze do djece

Fakultet elektrotehnike Univerziteta u Tuzli

9/22

Binarna stabla

Stablo kod kojeg $!or mo*e imati naj!i3e 9 djece

<ubina je prosje$nog binarnog stabla je mnogo manja od 2# mada u najgorem slu$aju mo*e i nositi 2"4

Fakultet elektrotehnike Univerziteta u Tuzli

1 /22

Binarno stablo " implementacija

Binarno stablo je mogu+e implementirati pomo+u ni a&

Fakultet elektrotehnike Univerziteta u Tuzli

11/22

Binarno stablo " implementacija

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

struct CvorStabla { ElemTip element; CvorStabla *lijevo; CvorStabla *desno; };


Fakultet elektrotehnike Univerziteta u Tuzli

12/22

Binarno stablo " primjer

=i3e $!oro!a se !e*e u stablo na sljede+i na$in'


!orijen

left

data ri !t 42

left

data ri !t 5"

left

data ri !t 27 left data ri !t #6

Fakultet elektrotehnike Univerziteta u Tuzli

13/22

Ureena binarna stabla (binary search trees " BST)

>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 @'

Fakultet elektrotehnike Univerziteta u Tuzli

14/22

Ureena binarna stabla (binary search trees " BST)

%#"&'"( )*&%+(

"#$E %#"&'"( )*&%+(


jer je 7 , 6 a nalazi se - lijevom .odsta/l- vora 6

Fakultet elektrotehnike Univerziteta u Tuzli

15/22

Ureena binarna stabla (binary search trees " BST)


0va sta/la !oja sadr1e iste .odat!e

Prosjena d-/ina vora je (2lo3"4 "ajvea d-/ina vora je (2"4

Fakultet elektrotehnike Univerziteta u Tuzli

16/22

)peracije nad BST binarnim stablom


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)

Fakultet elektrotehnike Univerziteta u Tuzli

17/22

%retra*i!anje u binarnom stablu


Primjer tra1enja vora sa vrijedno5- 96

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

)!o je rekur i!an proces'

)lo1enost6 O(visina stabla)


Fakultet elektrotehnike Univerziteta u Tuzli

18/22

%rola ak kro BST engl' tra!ersal

%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:

procesira se lije!o pa desno podstablo pa onda $!or


19/22

Fakultet elektrotehnike Univerziteta u Tuzli

%rola ak kro BST primjer


korijen

12 5 2 " 15 1# 1"

pre order: 12 5 2 9 in order: 2 5 9 12 post order: 2 9 5 15

18 15 19

15 18 18

19 19 12
2 /22

Fakultet elektrotehnike Univerziteta u Tuzli

%rola ak kro BST FtrikF

Br o generisanje re ultata prolaska kro stablo&


korijen

2acrtati putanju oko stabla' >ad proete pored $!ora sa pra!e strane# procesirati ga'

12 5 2 " 15 1# 1"

pre"order& sa lije!e strane in"order& odo do post"order& sa desne strane

pre order: 12 5 2 9 in order: 2 5 9 12 post order: 2 9 5 15

18 15 19

15 18 18

19 19 12

Fakultet elektrotehnike Univerziteta u Tuzli

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

)lo1enost6 O(visina stabla)


Fakultet elektrotehnike Univerziteta u Tuzli

22/22

You might also like