Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.