Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Szia!
- Dinamikus tömbbel is csinálhatod, de szerintem sokkal egyszerűbb listával megvalósítani egy LIFO-t, hiszen mindig a lista elejére szúrunk be és onnan is veszünk ki. Egy egyszerű, egyszeresen láncolt listánál, csak az első elem címét kell eltárolni, a beszúrás művelete ennyi:
- uj_elem = new valami;
- uj_elem->kovetkezo = elso_elem; // kezdetben: elso_elem = NULL;
- elso_elem = uj_elem;
- A kivétel pedig:
- kivett_elem = elso_elem;
- if (elso_elem != NULL) elso_elem = elso_elem->kovetkezo;
- valami_muvelet(kivett_elem);
- delete kivett_elem;
- A LIFO-ra vagy más néven stackre rengeteg példa adható. Amúgy a teszteknél elegendő pusztán funkcionálisan letesztelni a tárolót, tehát megnézni, hogy belerakok három elemet és tényleg vissza tudom hozni őket, ráadásul a felépítésből következően, fordított sorrendben.
- De ha szeretnél egy kicsit összetettebb példát, akkor lehet egy lengyel alakot kiértekelő példát csinálni, ahol van mondjuk kétféle művelet- és egy számosztály, ezeket helyezzük be a LIFO-ba, majd a végrehajtás úgy történik, hogy meghívjuk ezek számol() műveletét és átadjuk nekik a tárolót (azért, hogy mondjuk egy művelet fel tudja belőle hozni az operandusait).
Add Comment
Please, Sign In to add comment