16. verem műveletei
DESCRIPTION
16. Verem műveletei. Kaszab Gábor. A verem tömbös megvalósítása. -Itt a vermet egy tömb segítségével valósítjuk meg. -Az indexelést 1-től kezdjük, a tömb maximális mélységét pedig a Max változó tárolja. 1. top. Max. -A legfelső elem indexét a Top változóból tudhatjuk meg. Empty(v). - PowerPoint PPT PresentationTRANSCRIPT
16. Verem műveletei
Kaszab Gábor
A verem tömbös megvalósítása
1 Maxtop
-Itt a vermet egy tömb segítségével valósítjuk meg
-Az indexelést 1-től kezdjük, a tömb maximális mélységét pedig a Max változó tárolja
-A legfelső elem indexét a Top változóból tudhatjuk meg
Tömbös műveletek
Empty(v)
top:=0
-Létrehoz egy üres v nevű vermet
top Max
Tömbös műveletek
IsEmpty(v)
Return(top=0)
-Megvizsgálja hogy üres-e a verem
-Üres, ha a visszatérési érték 0
-Különben nem üres
Tömbös műveletek
IsFull(v)
Return(top=Max)
-Hasonló az előzőhöz
-Azt vizsgálja, hogy tele van-e a verem
-Ha a top értéke megegyezik a Max- éval, akkor tele van
Tömbös műveletek
Push(v,e)
top=Max
H
I
B
A
v[top+1]:=e
top:=top+1
-A verem tetejére betesz egy új elemet
-Ha a verem tele van, hibát kapunk
-Egyébként beteszi az új elemet és beállítja a top változót a legfelső elemre
top
e
top+1 Max
Tömbös műveletek
Pop(v,x)
top=0
H
I
B
A
x:=v[top]
top:=top-1
-Kiveszi a verem legfelső elemét
-Ha a verem üres volt, hibát kapunk
-értékül adja az x- nek a legfelső elemet és a verem mélységét csökkenti 1- el
x
toptop-1
Tömbös műveletek
Top(v)
top=0
Hiba Return(v[top])
-Megnézi a verem legfelső elemét, úgy hogy nem veszi ki belőle
-Üres verem esetén hibát kapunk
top
Láncolt megvalósítás
top
top
v
-Egy elem adatmezőből és az alatta lévő elemre mutató pointerből áll
-Ha nincs alatta elem, a NIL- re mutat
-A top változót a v pointer helyettesíti, ami a legfelső elemre mutat
-Nem kell Max változó, mert dinamikusan bővíthető
Láncolt műveletek
Empty(v)
v=NIL
-Létrehoz egy új vermet
-A v pointert NIL- re állítja
Láncolt műveletek
IsEmpty(v)
Return(v=NIL)
-Lekérdezi, hogy üres- e a verem
-Üres, ha a v pointer a NIL- re mutat
Láncolt műveletek
Top(v)
v=NIL
Hiba Return(v^.adat)
-Lekérdezi a verem legfelső elemét
-Ha üres a verem, hibát kapunk
-A v pointer által mutatott elem adat mezőjét adja vissza
v
Ennek az értékét kapjuk vissza
Láncolt műveletek
Push(v,e)
new(p)
p^.adat:=e
p^.mut:=v
v:=p
-Betesz egy elemet a verembe
-Először létrehoz egy p nevű elemet, az adatmezőnek értékül adja az e- t, mutatójának pedig értékül adja a v- t
-Végül ráállítja a v- t az új elemre
v
e
Láncolt műveletek
Pop(v,x)
v=NIL
H
I
B
A
x:=v^.adat
p:=v
v:=v^.mut
dispose(p)
-Kiveszi a legfelső elemet
-Üres verem esetén hiba
-A v- t egyel lentebbi elemre állítja
-Kitörli a legfelső elemet
v
p