1 / 15

16. Verem műveletei

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).

vangie
Download Presentation

16. Verem műveletei

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Empty(v) top:=0 Tömbös műveletek -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. Push(v,e) top=Max H I B A v[top+1]:=e top:=top+1 Tömbös műveletek -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 -A v pointert NIL- re állítja Empty(v) v=NIL

  11. Láncolt műveletek -Lekérdezi, hogy üres- e a verem -Ü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. e 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

  14. Pop(v,x) v=NIL x:=v^.adat H I B A p:=v v:=v^.mut p dispose(p) Láncolt műveletek -Kiveszi a legfelső elemet -Üres verem esetén hiba -A v- t egyel lentebbi elemre állítja -Kitörli a legfelső elemet v

  15. Vége

More Related