kategória | ||||||||||
|
||||||||||
|
||
Műveletek veremmel. Rekurzív algoritmusok, kifejezések kiértékelése.
Vermek felhasználása
1., Rekurzív algoritmusok
Veremben tároljuk a
- paramétereket,
- a lokális változókat,
- a visszatérési címeket
Példa rekurzív algoritmus: Hanoi tornyai
Kifejezések kiértékelése: Lengyel-formula
A+B, ( A + B ) * C infix jelölés
+AB,*+ABC prefix jelölés
AB+, AB+C* postfix jelölés
Postfix kifejezések kiértékelése veremmel:
1., Operandus Verem
operátor:
- verem két felső elemének (pl.: A,B) kiemelése
- B A elvégzése
- eredmény verem
Példa ( 5*(6+2)-12/4 )
1., 2., 3., 4., 5.,
2
6 6 8
5 5 5 5 40
6., 7., 8., 9.,
4
12 12 3
40 40 40 37
Infix kifejezések átalakítása postfix kifejezéssé veremmel
1., Operandus P (postfix kif.)
verem
operátor:
- veremből P-be helyezi sorban az összes olyan operátort, melynek precedenciája ³ mint
- verem
- veremből P-be helyezi -t, míg ( nem jön
- ( eltávolítása
5., Végén maradékot veremből P
Példa ( A + B ) * C - D/E
+ +
C ( ( ( *
A A AB AB+ AB+
/ /
* - - - -
AB+C AB+C* AB+C*D AB+C*D AB+C*DE AB+C*DE/-
Példa Sor (FIFO)
V =
F =
Szintaxis: new: sor
add: sor x elem sor
front: sor elem
remove: sor sor
Konstrukciós: new, add
Szelekciós: front, remove
Találat: 1195