Documente Academic
Documente Profesional
Documente Cultură
Stiva
Cuprins
Stiva Forma polonez Calculul unei expresii matematice
Stiva
Stiva
Definiie: structur de date abstract, avnd prorietatea c operaiile de adugare i extragere se realizaz numai din vrful stivei. (LIFO Last In First Out)
POP
. . .
2 1 Stiva
Stiva(cont.)
Se folosesc vectori pt. simularea stivei St la baza recursivitii
Funcia Ackermann
dac y = 0 x + 1 f ( x, y ) = ac( x 1,1) dac y = 0 ac( x 1, ac( x, y 1)) altfel
Stiva
Cum se implementeaz n C?
se folosete o structur de date de tip stiva st se adaug n stiv valoarea lui x pentru x<12, la apelul funiei f se pune(PUSH) n stiv rezultatul x+2 pentru x12, se scoate din stiv (POP) i se modific nou vrf al stivei cu x-1 algoritmul se ncheie cnd nu mai sunt elemente n stiv Stiva
f ( 6) = ?
11
Stiva
Stiva(cont.). Ackermann
Funia Ackermann
daca x = 0 y +1 f ( x , y ) = f ( x 1,1) daca y = 0 f ( x 1, f ( x , y 1)) altfel
f (2,1) = f (1, f (2,0)) = f (1, f (1,1)) = f (1, f (0, f (1,0))) = = f (1, f (0, f (0,1))) = f (1, f (0,2)) = f (1,3) = f (0, f (1,2)) = = f (0, f (0, f (1,1))) = f (0, f (0, f (0, f (1,0)))) = f (0, f (0, f (0, f (0,1)))) = f (0, f (0, f (0,2))) = f (0, f (0,3)) = f (0,4) = 5
se folosete o structur de date de tip stiva cu 2 elemente st se adaug n stiv valoarile x i y Pentru x i y 0, la apelul funiei f se pune n stiv (x,y-1) pentru y=0, se modific vrful stivei cu valorile (x-1,1) pentru x=0, se scoate din stiv (x,y) i se modific nou vrf al stivei cu (x-1,y) Stiva
Stiva(cont.). Ackermann
Exemplu
5
Stiva
E1 @ E2 E1 E2 @
forma postfixat
Input: Output:
(a * (b c) + d /(e + f * h) i )
abc-*defh* + /i- +
Stiva
Stiva
Stiva
a=2 b=3 c =1
Output:
Stiva
Stiva
= 3
Stiva