Teleksov tečaj

MO: Zadnjič smo
|Nspoznali osnovne tipe
podatkov, ki jih uporablja-
mo v računalnikih. Omenili
smo zapise Boolovih spre-
menljivk, celoĹĄtevilske po-
datke, realna ĹĄtevila, zapis
besedila in polja (eno, dvo
in več dimenzionalna). Da-
nes si oglejmo ĹĄe sklad,
vrsto in seznam.

Sklad

Ko smo se pogovarjali o
naboru  instrukcij, smo
omenili instrukciji PUSH in
POP ter povedali, da ju
uporabljamo za obravnava-
nje podatkovne strukture
SKLAD (angl. STACK).
Za obravnavanje sklada po-
trebujemo v pomnilniku
dovolj prostora, da bomo
lahko zapisali vse podatke,
ki jih mislimo največ hkrati
shraniti na sklad, in pa skla-
dovni kazalec (angl. Stack
Pointer).

Denimo, da smo v po-
"mnilniku rezervirali dovolj
prostora in definirali skla-
dovni kazalec. Shematično
bi to predstavili s skico 1.

Skladovni kazalec SP

za začetnike —

OSNOVE
RAČUNALNIŠTVA |

Teleksov tečaj za začetnike —

Značilno za sklad je, da
vsak podatek, ki ga zapiĹĄe-
mo v sklad, zapiĹĄemo na vrh
sklada, in vsak podatek, ki
ga vzamemo s sklada, pre-
beremo z vrha sklada. Tako
preberemo vedno zadnji
podatek, ki je bil zapisan na
sklad. Temu principu pravi-
jo v angleščini LIFO (Last
In First Out): zadnji not,
prvi ven.

Postopek zapisovanja na
sklad (operacija PUSH) po-
teka po naslednjem pravilu:
naslov v skladovnem kazal-
Cu povečaj za ena in zapiši
podatek na pomnilniĹĄko lo-
kacijo, ki jo kaĹže skladovni
kazalec.

POMNILNIK

TEK5 | VRH
PODATEK5 | VRH a

(ZAČETEK
SKLADA)

Teleksov tečaj za zače...

Postopek branja je ravno
nasproten: preberi podatek
iz pomnilniĹĄke lokacije, ki
jo kaĹže skladovni kazalec,
in zmanjĹĄaj naslov v skla-
dovnem kazalcu za ena.

Zanimivo je brisanje po-
datkov s sklada. Pri tem ni
potrebno v resnici zbrisati
podatka, temveč le' zmanj-
ĹĄati vrednost naslova v skla-
dovnem kazalcu za ena. Do
podatkov, ki so na naslovih
nad trenutno vrednostjo
skladovnega kazalca, na-
mreč nimamo dostopa.
Skladovni . kazalec lahko
pokaĹže na te naslove ĹĄele
takrat, ko zapiĹĄe nanje nove
vrednosti z operacijo PUSH
(takrat pa zbriĹĄe prejĹĄnjo
vsebino).

V naslednjem primeru
bomo najprej na sklad zapi-
sali pet podatkov. Stanje po
zapisu je prikazano na na-
slednji skici pod (a). Nato
bomo prebrali en podatek
in stanje bo skicirano pod
(b). Nazadnje bomo s skla-
da zbrisali zgornji podatek
(čeprav bo podatek še ve-
dno zapisan v pomnilniku,
pa ne bomo mogli več do
njega) in to stanje bo zapi-
sano. na skici (c). Na koncu

bomo ĹĄe zapisali nov poda-

tek na sklad (skica d).

Ĺ e' enkrat OpiĹĄimo doga- |

janja na skladu v naĹĄem pri-

ki

meru. Najprej zapiĹĄemo na
sklad ĹĄtevila 3, 5, 1, 9, 4
(skica a). Preberimo s skla-
da podatek (to je 4: sedaj je
na skladu le ĹĄe 3, 5, 1, 9),
kar je na skici b. ZbriĹĄimo s
sklada en podatek (to je 9;
sedaj je na skladu le ĹĄe 3, 5,
1), kar je na skici c. Skla-
dovni kazalec vedno kaĹže
na zadnji vnos, ki je ĹĄe na
skladu: ZapiĹĄimo na sklad
število 7 — skica (d).

aĹĄe vpraĹĄanje, strokovnjakov odgovor - VaĹĄe vpr

PiĹĄe: Tom Erjavec 9

Da je sklad prazem, ugo-
tovimo tako,da preverimo
vrednost skladovnega ka-
zalca. Če je vrednost 0 ali.
manj kot 0 (če sklada nismo
začeli na naslovu $, potem
začetni naslov), potem je
sklad prazen oziroma smo
Ĺže zaĹĄli pod dovoljeni obseg
sklada. z

Če bi želeli na. sklad
spravljati polja podatkov,

, potem bi morali postopek

ud) 4
zapisovanja nekoliko spre-
meniti. Zgornji primer velja
le za podatke, ki gredo v
eno pomnilniĹĄko lokacijo.
Če bi hoteli na sklad zapiso-
vati denimo besede, dolge

do 10 znakov, bi morali

vsakič, ko bi zapisovali ozi-
roma brali s sklada, narediti
na  skladovnem

za |, torej bi bilo pravilo

naslednje: h
Pisanje: povečaj skladov-
ni kazalec za 10 in zapiĹĄi

kazalcu .

| besedo.

Branje: preberi besedo in
| zmanjĹĄaj skladovni kazalec
| za 10. ;

Vrsta

Vrsta angl. gucuc) je po-
datkovna struktura, pri ka-
- | teri podatke vedno vpisuje-
mo (dodajamo) na začetku
n beremo (odvzemamo) na
koncu. Za ta namen potre-
bujemo dva kazalca. Tiste-
ga, ki kaže na začetek vrste,
imenujemo SPREDAJ,