16. verem műveletei

15
16. Verem műveletei Kaszab Gábor

Upload: vangie

Post on 05-Jan-2016

20 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: 16. Verem műveletei

16. Verem műveletei

Kaszab Gábor

Page 2: 16. Verem műveletei

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

Page 3: 16. Verem műveletei

Tömbös műveletek

Empty(v)

top:=0

-Létrehoz egy üres v nevű vermet

top Max

Page 4: 16. Verem műveletei

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

Page 5: 16. Verem műveletei

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

Page 6: 16. Verem műveletei

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

Page 7: 16. Verem műveletei

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

Page 8: 16. Verem műveletei

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

Page 9: 16. Verem műveletei

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ő

Page 10: 16. Verem műveletei

Láncolt műveletek

Empty(v)

v=NIL

-Létrehoz egy új vermet

-A v pointert NIL- re állítja

Page 11: 16. Verem műveletei

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

Page 12: 16. Verem műveletei

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

Page 13: 16. Verem műveletei

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

Page 14: 16. Verem műveletei

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

Page 15: 16. Verem műveletei