Sklad

Sklad

Avtor: Gregor Šoln

Kaj sklad je

V računalništvu poznamo več različnih podatkovnih struktur. Slednjo, katero bomo v nadaljevanju podrobneje spoznali, se imenuje sklad.

Kako poteka shranjevanje podatkov si lahko ogledamo na spodnji sliki. Podatek položimo v sklad. Nato želimo shraniti nov podatek, ki ga prav tako položimo v sklad, ampak ta podatek je nad podatkom, ki smo ga naložili na začetku. Pobiranje podatkov iz sklada poteka tako, da lahko najprej poberemo podatek, ki je "najvišje" v skladu. V našem primeru lahko najprej poberemo podatek, ki smo ga shranili nazadnje, šele nato lahko poberemo podatek, ki smo ga v sklad shranili kot prvega.

Delovanje te podatkovne strukture lahko opišemo z besedami "Last In, First Out" oz. s kratico LIFO. Kaj to točno pomeni si bomo ogledali na naslednji strani.

(http://www2.nauk.si/files/593/sklad1_1.png)
slika prikazuje delovanje sklada. Podatke shranjujemo enega nad drugim.

Delovanje sklada po načelu LIFO

Kot smo že omenili, sklad deluje po načelu "Last In, First Out". Podatki, ki jih shranjujemo v sklad se shranjujejo tako, da se nalagajo en nad drugim. To pomeni, da do podatkov, ki so bili v strukturo shranjeni prvi ne moremo dostopati, če prej ne odstranimo vseh podatkov, ki so v sklad prišli za njimi. Ravno to pa opisuje besedna zveza "Last In, First Out". Zadnji podatek, ki je prišel v sklad, izstopi prvi.

Tukaj se morda spomnemo še kakšnega drugega podobnega načela, ki opisuje delovanje podatkovnih struktur kot je npr.: FIFO (First In, First Out). To načelo delovanja za podatkovno strukturo kot je slad ne velja. Za sklad je značilno načelo delovanja LIFO.

Primer sklad v vsakdanjem življenju poznamo npr. pri:

  • skladovnici zabojev
  • držalo PEZ bonbonov
  • nabojnik

Uporabo sklada v računalništvu poznamo pri:

  • brsklanikih (obiskane strani)
  • zaporedje ukazov "razveljavi"
  • pomožni pomnilink pri različnih algoritmih

Osnovne operacije sklada

Ker podatka kar tako ne moremo vstaviti v sklad, je omenjeni podatkovni strukturi potrebno prirediti neke osnovne metode. S pomočjo teh bomo lahko podatke vstavljali v sklad, še prej sklad pripravili, preverjali ali so podatki že v skladu in kateri je zadnji podatek.

Osnovne operacije sklada:

  • Pripravi skad - PREP
  • vstavi element - PUSH
  • element na vrhu - PEEK
  • odstrani element iz skalda - POP
  • Ali je sklad prazen - EMPTY

Zgoraj napisane alineje predstavljajo osnovne metode podatkovne strukture s pomočjo katerih je omogočeno osnovno delo s skladom.

Na začetku vedno sklad pripravimo, šele nato lahko pričnemo z vstavljanjem podatkov, kasneje lahko te podatke iz sklada pobiramo. Preden podatek poberemo iz sklada je priporočljivo preveriti ali je v skladu sploh kakšen podatek. Lahko se zgodi da je sklad prazen in tukaj postane metoda za pobiranje podatka iz sklada neuporabna.

Na naslednji strani si bomo ogledali enostavno implementacijo sklada v programskem jezik Python. Za konec, da bo razumevanje te podatkovne strukture še boljše si bomo ogledali video, ki prikazuje delovanje sklada.

Sprogramirajmo enostaven sklad

(http://www2.nauk.si/files/593/sklad2.png)

Za tesiranje sprogramiranega objekta v konzolnem oknu poženemo ukaz s=sklad(). S tem ustvarimo objekt tipa sklad. Nato pripravimo sklad z ukazom s.PREP(). Sedaj ko smo sklad pripravili lahko pričnemo z vnašanjem podatkov. Podatek vstavimo z ukazom s.PUSH(). POMEMBNO: Preden podatek vzamemo iz sklada je priporočljivo predhodno preverjanje obstoja najvišjega podatka. Če podatka ni se bo pojavila napaka.

Koda smo implementirali v programskem jeziku Pyhton. Sestavili smo razred tipa sklad. V metodi inicializacije rezerviramo spremenljivko self.sklad, ki bo kasneje služila kot naslov za tabelo, ki jo bomo uporabili kot sklad.

Pripravili smo osnovne metode, ki smo jih omenili na prejšnji strani. Kot že vemo, se podatki, ki jih zapisujemo v tabelo, dodajajo na konec tabele. Zato lahko tabelo uporabimo kot sklad. Podatke vstavljamo na konec tabele in iz nje podatke prav tako pobiramo iz zadnjega konca.

Z metodo za izpis (_str_) ugotovimo vsebino sklada. S tem se prepričamo ali naš sklad deluje v skladu z načeli LIFO standarda.

VIDEO: Delovanje skalda

Literatura

0%
0%