Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

16. Verem műveletei Kaszab Gábor.

Hasonló előadás


Az előadások a következő témára: "16. Verem műveletei Kaszab Gábor."— Előadás másolata:

1 16. Verem műveletei Kaszab Gábor

2 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

3 Tömbös műveletek Empty(v) top:=0 -Létrehoz egy üres v nevű vermet top
Max

4 Tömbös műveletek IsEmpty(v) -Megvizsgálja hogy üres-e a verem
-Üres, ha a visszatérési érték 0 -Különben nem üres Return(top=0)

5 Tömbös műveletek IsFull(v) -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 Return(top=Max)

6 Tömbös műveletek Push(v,e) top=Max v[top+1]:=e top:=top+1
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 e top top+1 Max

7 Tömbös műveletek -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 Pop(v,x) top=0 H I B A x:=v[top] top:=top-1 x top-1 top

8 Tömbös műveletek -Megnézi a verem legfelső elemét, úgy hogy nem veszi ki belőle -Üres verem esetén hibát kapunk Top(v) top=0 Hiba Return(v[top]) top

9 Láncolt megvalósítás v top
-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ő top

10 Láncolt műveletek -Létrehoz egy új vermet Empty(v)
-A v pointert NIL- re állítja Empty(v) v=NIL

11 Láncolt műveletek -Lekérdezi, hogy üres- e a verem IsEmpty(v)
-Üres, ha a v pointer a NIL- re mutat IsEmpty(v) Return(v=NIL)

12 Láncolt műveletek -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 Top(v) v=NIL Hiba Return(v^.adat) v Ennek az értékét kapjuk vissza

13 Láncolt műveletek Push(v,e) -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 new(p) p^.adat:=e v p^.mut:=v v:=p e

14 Láncolt műveletek -Kiveszi a legfelső elemet 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

15 Vége


Letölteni ppt "16. Verem műveletei Kaszab Gábor."

Hasonló előadás


Google Hirdetések