Author
-
View
221
Download
0
Embed Size (px)
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 1/74
III
IV
II
I Linearne strukture podataka
Nelinearne strukture podata
Pretraživanje
Sortiranje
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
SadržajSadržaj
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 2/74
UvodUvod
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
Algorithms + Data Structures =Programs
Dva osnovna gradivna blokaza implementaciju programskih sistema
Struktura podataka – opis načina
organizacije podataka
Algoritam – opis načina obrade podataka
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 3/74
O algoritmimaO algoritmima
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
Osobine jedan ili više ulaza i izlaza nedvosmislenost i ostvarljivost naredbi konačno vreme izvršavanja
Determinističko ponašanje (ali ipseudoalgoritmi
!era e"kasnosti – vremenska i
prostorna slo#enost
$ajčeš%e u pseudojeziku
&mplementacija algoritama (jezik' mašinavod
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 4/74
O strukturama podatakaO strukturama podataka
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
!odelira objekte i podatke izproblema
)lementarni' primitivni tipovi
*lo#eni' struktuirani tipovi logička struktura "zička struktura
Osnovni načini struktuiranja homogeni nizovi nehomogeni zapisi
vod
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 5/74
vod O strukturama podataka
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
ZapisZapis
Agregacija elemenata različitog tipa(polja
,retira se kao logička celina
-oristi se u implementaciji dinamičkih struktura
datoteka
Operacije obično nad poljima
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 6/74
vod O strukturama podataka
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
ZapisZapis
*meštanje u memorijia kontinualna alokacija poljab vezivanje polja za početak
reči
m a r k a
s n a g a
s n a g ag o d i n a
g o d i n am a r k a
a 1
a 1
a )
b )
1 0 0 1 1 0 1 1 4
1 1 2 1 1 61 0 0
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 7/74
Podele strukturaPodele struktura
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
.o relacijama elemenata linearne nelinearne
.o mogu%nosti promene veličine statičke dinamičke
.o mestu čuvanja unutrašnje (u operativnoj
memoriji spoljašnje (datoteke
vod O strukturama podataka
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 8/74
vod O strukturama podataka
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
Memorijska reprezentacijaMemorijska reprezentacija
Sekvencijalna /izički i logički poredak isti
.ristup elementima
direktan Obično za linearne
strukturea )
b )
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 9/74
vod O strukturama podataka
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
Memorijska reprezentacijaMemorijska reprezentacija
Ulanana /izički i logički poredak
različiti
.ristup elementimaindirektan
-oristi pokazivačkimehanizam
Obično za nelinearnestrukture
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 10/74
III
IV
II
I Linearne strukture podataka
Nelinearne strukture podata
Pretraživanje
Sortiranje
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
SadržajSadržaj
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 11/74
Linearne strukture podatakaLinearne strukture podataka
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
Linearna lista (a0' a1' 222' an' n 3 4
Apstraktni tip nezavisno odimplementacije
*trukturno svojstvo – jednodimenzionalnost
Operacije obilazak po poretku 022n pretra#ivanje pristup elementu
umetanje brisanje' 222
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 12/74
Linearne strukture podatakaLinearne strukture podataka
A l g o r i t m i i s t r u k t
u r e
p o d a t a k a
&mplementacija sekvencijalna – niz
ulančana – ulanana
lista
Disciplina pristupa 5&/O stek
/&/O red
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 13/74
5inearne strukture podataka
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
NizoviNizovi
Niz homogeni struktuirani tip
&ndeks – pozicija elementa u nizu
X 6l7u8 = { X 6i8}' i = l' l + 0' 9 ' u 0' u
Direktan pristup elementu bezograničenja
:išedimenzionalni nizovi (nizovinizova
*elekcija elementa
O eraci e
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 14/74
5inearne strukture podataka $izovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
SmeSme!tanje vektora!tanje vektora
*ekvencijalna reprezentacija'ne razdvaja se logički koncept odimplementacije
Ai = Al + (i ls (jedan element zauzima sreči
)"kasan' direktan pristup'nee"kasno umetanje i brisanje X [ l ] X [ i ] X [ u ]
Al
Ai
s
X
.redstavljanje nizova u memoriji
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 15/74
5inearne strukture podataka $izovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
SmeSme!tanje vektora!tanje vektora -ontinualno
prostorno e"kasno nee"kasan pristup
*a dopunjavanjem ( padding iskoriš%enje prostora S
u = s ;
s e"kasniji pristup
X [ l ]
X [ l + 1 ] X [ l + 2 ]
X [ l ]
X [ l + 1 ] X [ l + 2 ]
.redstavljanje nizova u memoriji
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 16/74
5inearne strukture podataka $izovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
SmeSme!tanje vektora!tanje vektora
.akovanje k = 0;s elemenata u jednoj reči
prostorno iskoriš%enje Su = ks ;
ks A
i = A
l + (i l;k
pozicija u reči (i - l) mod k
X [ l ]
X [ l + 6 ]
X [ l + 5 ]
.redstavljanje nizova u memoriji
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 17/74
5inearne strukture podataka $izovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Sme!tanje matricaSme!tanje matrica
<ilj e"kasna adresna unkcija
5inearizacija po vrstama (rowmajor po kolonama (column
major
X
1
i , j i , 1 i , N
M , j M , 1 M , N
i
M
1 j N
1 , j 1 , 1 1 , N
.redstavljanje nizova u memoriji
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 18/74
5inearne strukture podataka $izovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Sme!tanje po vrstamaSme!tanje po vrstama
X[l 1:u1 , l 2:u2 ]
Ai,j = A
l0,l1 + ((i l0(u1 l1 + 0 + j l1s
X[1:M,1:N]
Ai,j = A0'0 + ((i 0N + j 0s
ne zavisi od broja vrsta
1 , j 1 , 1 1 , N M , j M , 1 M , N . . .. . .
v r s t a 1 v r s t a i v r s t a M
i , j i , 1 i , N
.redstavljanje nizova u memoriji
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 19/74
5inearne strukture podataka $izovi .redstavljanje nizova u memoriji
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Sme!tanje po kolonamaSme!tanje po kolonama
X[l 1:u1 , l 2:u2 ]
Ai,j = A
l0,l1 + (( j – l1(u0 – l0 + 0 + i –l0s
X[1:M,1:N]
Ai,j = A0'0 + (( j 0M + i 0s
ne zavisi od broja kolona
i , 11 , 1 M , 1 i , j 1 , j M , j i , N 1 , N M , N . . .. . .
k o l o n a 1 k o l o n a j k o l o n a N
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 20/74
5inearne strukture podataka $izovi .redstavljanje nizova u memoriji
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Vi!edimenzionalni nizoviVi!edimenzionalni nizovi
X[1:u1 , 1:u2 , ..., 1:un ]
>eneralizovano smeštanje po vrstama X[1, ..., 1, 1] X[1, ..., 1, 2] X[1, ..., 1, u
n ]
X[1, ..., 2, 1] X[1, ..., 2, 2] X[1, ..., 2, un ]
...
X[u1, ..., u
n-1, 1] X[u
1, ..., u
n-1, 2] X[u
1, ..., u
n-1, u
n ]
5eksikogaski poredak
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 21/74
5inearne strukture podataka $izovi .redstavljanje nizova u memoriji
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Vi!edimenzionalni nizoviVi!edimenzionalni nizovi
Ai1,.., in = A1,..,1 + ((i1 - 1)u2u3...un + (i2 - 1) u3u4...un +…+ (i
n-1- 1)u
n + i
n - 1)s
)"kasno izračunavanje
ofse = 4"or j = 0 to n do
ofse = ! 6 j 8 ofse + "6 j 8 0
end#"or
A = A0'22'0 + s # ofse &mplikacije načina smeštanja
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 22/74
a ) 0
x
x
xX
b ) X
x
x
x0
c )
00
0
0X
d )
X0
0
00
5inearne strukture podataka $izovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Optimizacije pri sme!tanjuOptimizacije pri sme!tanju
<ilj – ušteda prostora' ali ipak e"kasanpristup
.rimer trougaone matrice
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 23/74
5inearne strukture podataka $izovi Optimizacije pri smestanju nizova
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
$rougaona matrica$rougaona matrica
$pr2 donja trougaona matrica X 6i' j8 = 4 , i ? j
.rimena smeštanja po vrstama
X 60'08 X 61'08 X 61'18 X 6@'08 X 6@'18 X 6@'@8 222
šteda u prostoru oko 4B
Ai,j = A0'0 + (i(i 0;1 + j 0s ako je i ≥ j
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 24/74
1 n + 12
X
Y
n1
X
Y
1
n n
12
a ) b )
5inearne strukture podataka $izovi Optimizacije pri smestanju nizova
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
$rougaone matrice$rougaone matrice
X 6i' j8 = $ 6i' j +08 ako je i ≤ j C6i' j8 = 4 zai j
% 6i' j8 = $ 6i' j8 ako je i ≥ j % 6i' j8 = 4 za
i ? j
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 25/74
0
0
0
0
9
0
0
0
0
0
0
4
0
0
0
0
0
5
0
8
0
0
0
0
0
0
0
1 1
0
0
1 5
0
0
0
0
X =
4
5
1 1
9
8
1 5
V
4
6
1
4
!
"
1
2
2
4
4
5
#
5inearne strukture podataka $izovi Optimizacije pri smestanju nizova
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
%etki nizovi%etki nizovi
Eelativno veliki broj nultih elemenata .amte se samo nenulti elementi – ušteda
prostora
:ektorska reprezentacija $ee"kasne operacijeF
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 26/74
l i s t i n f o i n f o i n f on e x t n e x t n e x t
5inearne strukture podataka
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Ulanane listeUlanane liste
$edostaci sekvencijalne implementacije
Ulanana lista ulančana implementacijalinearne liste
)lement liste čvor
Dinamička alokacija' pokazivačkimehanizam
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 27/74
5inearne strukture podataka lančane liste Osnovni pojmovi i osobine
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Vrste listaVrste lista
.o načinu povezanosti jednostruko ulančane dvostruko ulančane
kru#ne nekru#ne
.o organizaciji ureGene neureGene
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 28/74
y z
!
y z
!
x
5inearne strukture podataka lančane liste Operacije sa jednostruko ulančanim listama
A l g o r i t m i i s t r u k t u r e
p o d a t a k a &$*)E,A/,)E( p' &
' = >),$OD)
in(o(' = & ne& (' = ne& ( p
ne& ( p = '
&ednostruko ulanane liste &ednostruko ulanane liste
metanje iza zadatog čvora
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 29/74
y z
!
x z
!
y
5inearne strukture podataka lančane liste Operacije sa jednostruko ulančanim listama
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
&$*)E,H)/OE)( p' &
' = >),$OD)
ne& (' = ne& ( p
in(o(' = in(o( p
in(o( p = &
ne& ( p = '
&ednostruko ulanane liste &ednostruko ulanane liste
metanje ispred zadatog čvora
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 30/74
x
z y
x
z
5inearne strukture podataka lančane liste Operacije sa jednostruko ulančanim listama
A l g o r i t m i i s t r u k t u r e
p o d a t a k a D)5),)A/,)E( p
' = ne& ( p
ne& ( p = ne& ('
/E))$OD)('
&ednostruko ulanane liste &ednostruko ulanane liste
Hrisanje iza zadatog čvora
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 31/74
x
y
!
y
5inearne strukture podataka lančane liste Operacije sa jednostruko ulančanim listama
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a D)5),)( p
' = ne& ( p
ne& ( p =ne& ('
in(o( p =in(o('
/E))$OD)('
&ednostruko ulanane liste &ednostruko ulanane liste
Hrisanje zadatog čvora
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 32/74
5inearne strukture podataka lančane liste Operacije sa jednostruko ulančanim listama
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
*)AE<I(lis ' &
p = lis
'(ile ( p ≠ nil and (in(o( p ≠ & do
p = ne& ( p
end#'(ile
return p
&ednostruko ulanane liste &ednostruko ulanane liste
.retra#ivanje neureGene liste
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 33/74
5inearne strukture podataka lančane liste Operacije sa jednostruko ulančanim listama
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
&ednostruko ulanane liste &ednostruko ulanane liste
*)AE<IOED(lis ' &
p = lis
'(ile ( p ≠ nil and (in(o( p ? & do
p = ne& ( p
end#'(ile
i" ( p ≠ nil and (in(o( p &
t(en p = nil
end#i"
return p
.retra#ivanje ureGene liste
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 34/74
i n f o i n f o i n f on e x t n e x t n e x t l i s t
5inearne strukture podataka lančane liste Operacije sa kru#nim ulančanim listama
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
)ružne liste)ružne liste
.oslednji čvor ukazuje na prvi
Omogu%uje kru#no kretanje po listi
*poljašnji pokazivač na listu ponekadukazuje naposlednji čvor
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 35/74
l i s t
y
y x
l i s t
5inearne strukture podataka lančane liste
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
&$*)E,A/,)E<( p' & ' = >),$OD)
in(o(' = &
ne& (' = ne& ( p
ne& ( p = '
i" (lis = p t(enlis = '
end#i"
)ružne liste)ružne liste
Operacije sa kru#nim ulančanim listama
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 36/74
5inearne strukture podataka lančane liste
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
)ružne liste sa zaglavljem)ružne liste sa zaglavljem
l i s t "
"
a )
b )l i s t
$a početku poseban čvor – zaglavlje
kazuje na prvi čvor
5ista nikad nije praznaF
Operacije sa kru#nim ulančanim listama
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 37/74
!
i n f o r e # n e x t
i n f o r e # n e x t
!
5inearne strukture podataka lančane liste Operacije sa dvostruko ulančanim listama
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
*vostruko ulanane liste*vostruko ulanane liste
.okazivači na prethodnika i sledbenika 5ako kretanje u oba smera
ne& ( pre) ( p = p = pre) (ne& ( p
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 38/74
!
y z
!
y z
x
r
465
21
5inearne strukture podataka lančane liste Operacije sa dvostruko ulančanim listama
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
&$*)E,A/,)ED( p' &
' = >),$OD)
in(o(' = &
r = ne& ( p
pre) (' = p
ne& (' = r
ne& ( p = '
pre) (r = '
*vostruko ulanane liste*vostruko ulanane liste
metanje
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 39/74
! r
y z x
! r
z x
5inearne strukture podataka lančane liste Operacije sa dvostruko ulančanim listama
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
D)5),)D( p
' = pre) ( p
r = ne& ( p
ne& (' = r
pre) (r = '
/E))$OD)( p
*vostruko ulanane liste*vostruko ulanane liste
Hrisanje
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 40/74
5inearne strukture podataka lančane liste .oreGenje ulančane i sekvencijalne reprezentacije linearnih list
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Pore+enje nizova i listaPore+enje nizova i lista
lančana reprezentacija obično bolje koristi prostor e"kasnija za operacije umetanja'
brisanja
spajanja' 222 leksibilnost za dinamičke strukture
*ekvencijalna reprezentacija
e"kasniji pristup elementu pogodna za statičke strukture
:ektorska implementacija liste
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 41/74
5inearne strukture podataka lančane liste .rimene ulančanih lista
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
1l i s t
4 4 5 6 1 12 2
1 9 4 8 ! 1 54 54
Predstavljanje retki( nizovaPredstavljanje retki( nizova
Jednostruko ulančane liste (čvor nenultielement
5akše umetanje i brisanje
.ristup i dalje nee"kasan
.oboljšanje – kru#ne liste ulančanepo vrstama i kolonama
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 42/74
5inearne strukture podataka lančane liste
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
.rimene ulančanih lista
Predstavljanje retki( matricaPredstavljanje retki( matrica
1
42 1 162
914 844
1 5!5
4
5
$
%
1
2
4
5
1 2 4 5 6 !
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 43/74
5inearne strukture podataka lančane liste .rimene ulančanih lista
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Predstavljanje skupovaPredstavljanje skupova
:ektorska realizacija prostorna nee"kasnost e"kasne operacije
(unija' presek' razlika' pripadnost
lančana implementacija čvor element skupa prostorno e"kasnije
manje e"kasne operacije(za ureGene liste – O(n'za neureGene liste – O(n1
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 44/74
5inearne strukture podataka lančane liste .rimene ulančanih lista
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Predstavljanje polinomaPredstavljanje polinoma
Jednostruko ulančane kru#ne liste sazaglavljem
$pr2 @ & 0 – K & L + 1 & M
Ako su liste ureGene po vrednosti poljaeksponenta'e"kasnost operacija ve%a
& e x & & &e x e x e x n e x t n e x t n e x t n e x t
1 5 $ 8 ! 2 1 $ 6 0
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 45/74
5inearne strukture podataka
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
StekoviStekovi 5inearna lista sa 5&/O disciplinom pristupa
Jedan pristupni kraj – vrh steka
Dinamička' homogena struktura
t o
A ' % ( )
*
t o
A '
*
t o p
A ' ,
% ( )
a )
b )
c )
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 46/74
5inearne strukture podataka *tekovi &mplementacija steka i operacije sa njim
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Sekvencijalna reprezentacijaSekvencijalna reprezentacija $iz S607n8
.okazivač steka op6S8
*adr#aj S608' 222' S6op6S88
t o
6 5 9 1
t o
6 5 9 1 2
t o
6 5 9 1 2
a ) b )
c )
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 47/74
5inearne strukture podataka *tekovi &mplementacija steka i operacije sa njim
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Operacije sa stekomOperacije sa stekom
*,A<-)!.,N(Si" (op6S8 = 4 t(en
return trueelse
return alseend#i"
.*I(S' & i" (op6S8 = n t(en
)EEOE(OveroPelse
op6S8 = op6S8 + 0S6op6S88 = &
end#i"
metanje.rovera da li je prazan
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 48/74
5inearne strukture podataka *tekovi &mplementacija steka i operacije sa njim
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Operacije sa stekomOperacije sa stekom
.O.(Si" (op6S8 = 4 t(en
return underoPelse
& = S6op6S88op6S8 = op6S8 –
0
return & end#i"
,O.(Si" (op6S8 = 4 t(en
return underoPelse
return S6op6S88end#i"
klanjanje Qitanje bezuklanjanja
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 49/74
5inearne strukture podataka *tekovi &mplementacija steka i operacije sa njim
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Implementacija dva stekaImplementacija dva steka Eastu jedan prema drugom
Eealokacija prostora izmeGu stekova
slov prekoračenja op618 = op608 +0
t o % 1 &* % 1 &
* % 1 &
* % 2 &
* % 2 &
t o % 2 &
t o % 2 &t o % 1 &
- 1
- 1
- 2
- 2
a )
b )
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 50/74
5inearne strukture podataka *tekovi &mplementacija steka i operacije sa njim
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Implementacija vi!e stekovaImplementacija vi!e stekova
t o % 1 & t o % 2 & t o % & t o % 4 & t o % 5 &* % 1 & * % 2 & * % & * % 4 & * % 5 & * % 6 &
* % 1 &
t o % 1 & t o % 5 &t o % 4 &t o % &t o % 2 &
* % 2 & * % & * % 4 & * % 5 &
t o % 1 & t o % 5 &t o % 4 &t o % &t o % 2 &
* % 2 & * % & * % 4 & * % 5 &* % 1 &
- 1 - 2 - - 4 - 5
- 5
- 5
- 4
- 4
-
-
- 2
- 2
b )
c )
a )
- 1
- 1
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 51/74
5inearne strukture podataka *tekovi &mplementacija steka i operacije sa njim
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Implementacija vi!e stekovaImplementacija vi!e stekova
.*I!(i' & i" (op6i 8 = *6i + 08 t(en
)EEOE(OveroP
elseop6i 8 = op6i 8 + 0+ 6op6i 88 = &
end R i"
.O.!(ii" (op6i8 = *6i8 t(en
return underoP
else & = + 6op6i88op6i8 = op6i8 – 0return &
end R i"
klanjanjemetanje
.oboljšanje - arwick ov algoritam
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 52/74
5inearne strukture podataka *tekovi &mplementacija steka i operacije sa njim
x y s
y sa )
b )
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
Ulanana reprezentacijaUlanana reprezentacijastekasteka
.*I5(s' & p = >),$OD)in(o( p = & ne& ( p = ss = p
.O.5(si" (s = nil t(en
return underoPelse
p = ss = ne& ( p
& = in(o( p/E))$OD)( preturn &
end R i"
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 53/74
5inearne strukture podataka *tekovi
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
O,rada aritmetiki( izrazaO,rada aritmetiki( izraza
&n"ksna notacija (npr2 A+H prirodna i uobičajena grupisanje operanada uz operatore
uz pomo% zagrada (npr2 (A+HS<
i prioriteta (npr2 A+HS< nepogodno za prevodioca
(zahteva više skeniranja
.re"ksna (poljska notacija (npr2 +AH .ost"ksna (inverzna poljska notacija (npr2
AH+
.rimene stekova
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 54/74
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 55/74
5inearne strukture podataka
A l g o r i t m i i s t r u k
t u r e
p o d a t a k a
IzraunavanjeIzraunavanje post-ksnogpost-ksnogizrazaizraza):A5)C.( pos&
&$&,R*,A<-(S' n'(ile (notRendRo pos& do
& = &$.,( pos& i" ( & = operand t(en
.*I(S' & else i" ( & = unRop t(en
oprnd = .O.(Sre = & oprnd.*I(S' re
else i" ( & = binRop t(enoprnd1 = .O.(Soprnd0 = .O.(Sre = oprnd0 &
oprnd1.*I(S' re
end R i" end R '(ile
re = .O.(Si" (*,A<-)!.,N(S t(en
return re else
)EEOE($epravilanizrazend R i"
*tekovi .rimene stekova
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 56/74
5inearne strukture podataka
A l g o r i t m i i s t r
u k t u r e
p o d a t a k a
)onverzija in-ks)onverzija in-ks uu post-kspost-ks&$1.O*,(in& ' pos& &$&,*,A<-(S' nrank = 4
ne& = &$.,(in& '(ile (ne& do
i" (ne& = operand t(enO,.,(ne& ' pos& rank = rank + 0
else'(ile (not(*,A<-)!.,N(S and (&.E(ne& ≤*.E(,O.(S
do & = .O.(SO,.,( & ' pos& rank = rank + E( & i" (rank < 0 t(en
)EEOE($epravilan izrazend#i"
end#'(ile
i" (*,A<-)!.,N(S or (ne& ≠ TU t(en.*I(S' ne&
else & = .O.(S
end R i" end R i" ne& = &$.,(in&
end R '(ile*tekovi .rimene stekova
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 57/74
5inearne strukture podataka
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
O,rada aritmetiki(O,rada aritmetiki(izrazaizraza'(ile (not(*,A<-)!.,N(S do
& = .O.(SO,.,( & ' pos& rank = rank + E( &
end R '(ilei" (rank ≠ 0 t(en
)EEOE($epravilan izrazend R i"
operator
ipr spr %
./ 0 1 1 02
3/ 4 5 5 026 7 8 02
9 : ; 0
< 2 0 0
*tekovi .rimene stekova
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 58/74
5inearne strukture podataka
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
=enerisanje koda=enerisanje koda
0A mašina
Vablon za O0+O1
02 5OAD O012 ADD O1
@2 *,OE) ,0
Algoritam
operand na stek
operator7
O1' pa O0 sa steka
kod po šablonuza dati operator
meGurezultat na stek
*tekovi .rimene stekova
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 59/74
5inearne strukture podataka
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
O,rada aritmetiki(O,rada aritmetiki(izrazaizraza
.*I A.*I H
.*I <!5ADD
.*I DD&:
5OAD H!5 <ADD AD&: D
*,OE) ,0
4A mašina0A mašina(optimizovan
o
in"W: (A+HS<;D post"W7 AH<S+D;
5OAD H!5 <*,OE) ,05OAD AADD ,0
*,OE) ,15OAD ,1D&: D*,OE) ,@
0A mašina
*tekovi .rimene stekova
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 60/74
5inearne strukture podataka Eedovi De"nicija reda
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
%edovi%edovi
.
f r o n t
A'% ()
r e a r
,"
f r o n t
A'% ()
r e a r
," .
a )
b )
5inearna lista sa /&/O disciplinom pristupa Dva pristupna kraja – čelo i začelje
Dinamička' homogena struktura
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 61/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Sekvencijalna reprezentacijaSekvencijalna reprezentacijaredareda
r e a r
f r o n t
A '
'
r e a r
f r o n t
f r o n t r e a r
f r o n t
% (
r e a r
) '
r e a r
) /
a )
b )
c )
d 0
e 0
f 0
%
%
$iz !607n8
.okazivači (ron i rear
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 62/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Sekvencijalna reprezentacijaSekvencijalna reprezentacijaredareda
% 1 & % n &
% 1 & % n &
f r o n t r e a r 0
-ru#ni baer
/[1] i /[n] logički susedne
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 63/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Sekvencijalna reprezentacijaSekvencijalna reprezentacijaredareda
f r o n t r e a r
f r o n t
r e a r
f r o n t
r e a r
r e a r
f r o n t
a ) b )
d )c )
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 64/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
&$*)E,(/' &
rear 6/8 = rear 6/8 mod n +0
i" ((ron 6/8 = rear 6/8t(en
)EEOE(OveroP
else
/6rear 6/88 = & i" ((ron 6/8 = 4 t(en
(ron 6/8 = 0
end#i"
end#i"
Operacije sa redomOperacije sa redom
metanje
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 65/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Operacije sa redomOperacije sa redom
f r o n t
2 0
r e a r
f r o n t
8 5 12 0
r e a r
f r o n t
8 5 12 0
r e a r
a )
b )
c )
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 66/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
D)5),)(/
i" ((ron 6/8 = 4 t(en
return underoP
else
W = /6(ron 6/88
i" ((ron 6/8 = rear 6/8 t(en
(ron 6/8 = rear 6/8 = 4
else
(ron 6/
8 =(ron
6/
8 modn + 0
end R i"
return &
end R i"
Operacije sa redomOperacije sa redom
X)))!.,N(/
i" ((ron 6/8 = 4 t(en
return true
else
return alse
end R i"
Hrisanje
.rovera
l i ij
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 67/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
>lternativna reprezentacija>lternativna reprezentacija
f r o n t
r e a r
f r o n t
r e a r % 0 & % n $ 1 &
$iz !607n-18.razan red (ron =rear
O ij d
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 68/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
X)))!.,N4(/
i" ((ron 6/8 = rear 6/8t(en
return true
else
return alse
end R i"
Operacije sa redomOperacije sa redom
D)5),)R4(/
i" ((ron 6/8 = rear 6/8 t(en
return underoP
else
(ron 6/8 = ((ron 6/8 + 0mod n return /6(ron 6/88
end R i"
Hrisanje.rovera
O ij d
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 69/74
5inearne strukture podataka Eedovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
&$*)E,R4(/' &
rear 6/8 = (rear 6/8 + 0
mod n
i" ((ron 6/8 = rear 6/8t(en
)EEOE(overoP
else
/6rear 6/88 = &
end R i"
Operacije sa redomOperacije sa redom
metanje
&mplementacija reda i operacije sa njim
i d* t i d
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 70/74
5inearne strukture podataka Eedovi Dvostrani red
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
*vostrani red*vostrani red
a )
b )
c )
a metanje i brisanje na oba krajab metanje samo na jednom kraju
c Hrisanje samo na jednom kraju
Ul ij dUl t ij d
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 71/74
5inearne strukture podataka Eedovi &mplementacija reda i operacije sa njim
! y z # x
r e a r
y z
r e a r
#
!
! z # x
r e a r
c )
b )
a )
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
Ulanana reprezentacija redaUlanana reprezentacija reda
Jednostruko ulančana lista (rear na poslednjičvor
!o#e i kru#na lista
Ul ij dUl t ij d
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 72/74
5inearne strukture podataka Eedovi
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
&$*)E,5('' &
p = >),$OD)in(o( p = &
ne& ( p = nil
i" (rear 6'8 = nil
t(en' = p
else
ne& (rear 6'8 = p
end R i" rear 6'8 = p
Ulanana reprezentacija redaUlanana reprezentacija redaD)5),)5('
i" (' = nil t(enreturn
underoP
else
p =
'
& = in(o( p
' = ne& ( p
i" (' = nil t(en
rear 6'8 = nilend R i"
/E))$OD)( p
return &
end R i" &mplementacija reda i operacije sa njim
P i it t i dP i it t i d
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 73/74
Prioritetni redPrioritetni red
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
.oredak brisanja elemenata zavisi od prioriea –sadr#aja elementa
Eastu%i i opadaju%i prioritetni red .oredak umetanja mo#e biti od značaja
samo kod elemenata sa isitim prioritetom
:iše implementacija različite e"kasnosti
vod
P i it t i dP i it t i d
7/23/2019 Algoritmi Prezentacija
http://slidepdf.com/reader/full/algoritmi-prezentacija 74/74
A l g o r i t m i i s t r u k t u r e
p o d a t a k a
.X&$*)E,( p'' &
' = nil
p = p'
'(ile ( p ≠nil and ( & ≥ in(o( pdo
' = p p = ne& ( p
end R '(ile
i" (' = nil t(en
.*I5( p'' & else
&$*)E,A/,)E('' &
end i"
Prioritetni redPrioritetni red