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

VEREM.

Hasonló előadás


Az előadások a következő témára: "VEREM."— Előadás másolata:

1 VEREM

2 A verem olyan adatsorozat, amelynek csak az egyik végére (tetejére) tehetünk új elemet,
És csak erről a vehetünk el. Azaz az utolsónak bekerült elemet vehetjük ki elsőként. Ha egy üres verembe berakjuk az 1, 6, 3 számokat ilyen sorrendben, akkor először a 3, azután a 6, végül az 1 vehető ki. Ha még egy elemet ki akarunk venni, a verem-eljárás hibát jelez.

3 Last In First Out Felhasználásuk: - rendező pályaudvarok holt vágányai
- zsákutca - rendező pályaudvarok holt vágányai - kifejezések lengyel formája (műveletet az operandusai mögé helyezzük) - zsák - stb.

4 Műveletek: Üres : Verem Üres? (Verem) : Logikai Tele? (Verem) : Logikai Tető (Verem) : Elem Verembe (Verem, Elem) : Verem Veremből (Verem) : (Verem x Elem)

5 Szükségünk van egy TETEJE változóra, mely a legfelső elemre mutat.
Elemet az TETEJE helyről kell kivenni, új elemet, pedig egy TETEJE melletti üres helyre kell berakni.

6 Láncolt ábrázolás Modul Verem (Típus ElemTíp) Reprezentáció Típus
VeremElem = Rekord ( érték : ElemTíp alatta : VeremElemMut) Változó teteje : VeremElemMut hiba : Logikai

7 Implementáció Eljárás Üres (Változó v : Verem) teteje := sehova hiba := Hamis Eljárás vége Függvény Üres? (Konstans v : Verem) : Logikai Üres := (teteje = sehova) Függvény vége

8 Függvény Tele? (Konstans v : Verem) : Logikai
Változó vv : VeremElemMut Lefoglal (vv) Ha vv = sehova akkor Tele? := Igaz különben Tele? := Hamis Felszabadít (vv) Függvény vége

9 Eljárás Verembe (Változó v : Verem,
Konstans e : ElemTíp) Változó új : VeremElemMut Lefoglal (új) Ha új ≠ sehova akkor VeremElem (új) := VeremElem (e,teteje) teteje := új különben hiba:= Igaz Elágazás vége Eljárás vége

10 Eljárás Veremből (Változó v : Verem, e : ElemTíp)
újteteje : VeremElemMut Ha teteje ≠ sehova akkor e := VeremElem (teteje). érték újteteje := VeremElem (teteje). alatta Felszabadít (teteje) teteje:= újteteje különben hiba:= Igaz Elágazás vége Eljárás vége

11 Függvény Hibás? (Változó v : Verem) : Logikai
Hibás? := hiba hiba := hamis Függvény vége Inicializálás teteje := sehova hiba:= Hamis Modul vége

12 Folytonos (ciklikus) ábrázolás
Modul Verem (Típus ElemTíp) Reprezentáció Típus VeremTíp = Tömb ( 1..MaxMély : ElemTíp) Változó verem : VeremTíp teteje : 0..MaxMély mély : 0..MaxMély hiba : Logikai

13 Implementáció Eljárás Üres (Változó v : VeremTíp) teteje:= 0 mély:= 0 hiba:= Hamis Eljárás vége Függvény Üres? (Konstans v : VeremTíp) : Logikai Üres := (mély=0) Függvény vége

14 Függvény Tele? (Konstans v : VeremTíp)
: Logikai Tele? := (Mély=MaxMély) Függvény vége Függvény Tető (Változó v : VeremTíp) : ElemTíp Ha mély ≠ 0 akkor Tető := v (teteje) különben hiba := Igaz

15 Eljárás Verembe (Változó v : Verem,
Konstans e : ElemTíp) Ha mély < MaxMély akkor v(teteje) := e mély := mély+1 teteje := teteje+1 különben hiba:= Igaz Elágazás vége Eljárás vége

16 Eljárás Veremből (Változó v : Verem,
e : ElemTíp) Ha mély > 0 akkor e := v (teteje) mély := mély-1 teteje := teteje – 1 különben hiba:= Igaz Elágazás vége Eljárás vége

17 Függvény Hibás? (Változó v : Verem) : Logikai
Hibás? := hiba hiba := hamis Függvény vége Inicializálás teteje := 0 hossz := 0 hiba:= Hamis Modul vége


Letölteni ppt "VEREM."

Hasonló előadás


Google Hirdetések