Professional Documents
Culture Documents
04 StekRedovi
04 StekRedovi
Stekovi
Zadatak 1 – primena steka u evaluaciji izraza
Izračunati vrednost izraza datog u postfiksnoj formi:
AB+CD-E^^AE*+
ako promenljive imaju vrednosti:
A=-6, B=4, C=5, D=3, E=2.
Rešenje:
- Na osnovu osobina postfiksnog izraza da operandi neposredno
prethode operatoru i osobine da se poredak operanada ne menja, za
razliku od poretka operatora, generiše se algoritam za izračunavanje
izraza datog u postfiksnoj notaciji.
- Algoritam prirodno koristi stek za smeštanje operanada.
Rešenje:
– Prolazak kroz sve elemente steka nije efikasno rešenje
– Neefikasno ažuriranje u slučaju čuvanja pokazivača na minimalni
i maksimalni element na steku (prilikom skidanja elemenata sa
steka)
Elektrotehnički fakultet, Algoritmi i Strukture Podataka 10
Beograd
Zadatak 3 - rešenje
• Ideja je da se uz svaki element čuvaju trenutne
minimalne i maksimalne vrednosti na steku – O(1) za
pristup
5 5 5
3 3 5
4 3 5
8 3 8
1 1 8
10 1 10
SLEPI
KOLOSEK
STANICA
SLEPI
KOLOSEK
STANICA
SLEPI
KOLOSEK
D07
STANICA
SLEPI
KOLOSEK
D07 D02
M03 D03
STANICA
SLEPI
KOLOSEK
D07 D02
M03 D03
STANICA
SLEPI
KOLOSEK
D07
D02 D03
STANICA
SLEPI
KOLOSEK
D07 D03
STANICA
SLEPI
KOLOSEK
D03
STANICA
SLEPI
KOLOSEK
STANICA
free
Dodavanje elementa vrednosti 8 Dodavanje elementa vrednosti 7
9 4 8 5 1 6 3 9 4 8 6 7 6 3
PROCEDURE IDENTIFY(data_structure)
data_structure.add(2)
data_structure.add(1)
data_structure.add(3)
x = data_structure.remove()
if x = 1 then return pri_queue
else if x = 2 then return queue
else return stack
32
end_procedure
Zadatak 4 - za samostalnu vežbu
• U odeljenju za prijem i obradu pošiljki, u preduzeću
specijalizovanom za gradski transport pošiljki, rade tri zaposlena:
jedan prima pošiljke koje donose kuriri, drugi razvrstava pošiljke
prema ugovorenom vremenu isporuke (hitno, u toku dana,
u roku od 3 dana), a treći pakuje pošiljke u transportna vozila.
Pošiljke se u transportna vozila pakuju prema redosledu prispeća u
odeljenje, tako da prednost imaju pošiljke koje treba isporučiti pre
ostalih. Kapacitet transportnih vozila je 40 pošiljki
(smatrati da su sve pošiljke iste težine i zapremine).
1. Predložiti strukturu podataka koja omogućava efikasnu selekciju pošiljki
za slanje na prethodno opisan način. Skicirati procedure
za umetanje u predloženu strukturu i dohvatanje elemenata iz nje.
2. Skicirati procedure PRIJEM koja realizuje prijem i razvrstavanje pošiljke
i SLANJE koja realizuje selekciju i pakovanje pošiljke
u transportno vozilo.
FREENODE(p)
return x
end_if
9 3 4 2 6 5 1
• Ideja:
– jedan stek služi za umetanje novog elementa
– drugi stek služi za dohvatanje elementa
DELETE(x)
INIT(S1,S2)
if (top1 == top2) then
ALLOCATE(V[1:n])
return underflow
b2 = b1 = top1 = top2 = 0
end_if
rear = front = 0
x = POP(S2)
return
b1 = top2
front = top2
INSERT(x) return x
PUSH(S1, x)
b2 = top1
rear = top1
return