Pinot

Pinotietorakenne on niin sanottu LIFO-rakenne (Last-In First-Out, viimeisenä sisään, ensimmäisenä ulos). Voit työntää (push) arvoja pinoihin ja poistaa niitä sitten nostamalla (pop) niitä niistä. Arvo, joka on viimeksi lisätty pinoon, on myös ensimmäinen, joka siitä nostetaan. Pinoja käytetään usein, kun käsitellään keskeytyksiä tai kun käytetään rekursiivisia funktioita. Seuraavat funktiot käsittelevät pinoja:

ds_stack_create() Luo uuden pinon. Funktio palauttaa kokonaisluvun, joka on pinon id ja jota on käytettävä kaikissa muissa funktioissa juuri tämän tietyn pinon käsittelemiseksi. Voit luoda useita pinoja.
ds_stack_destroy(id) Tuhoaa pinon, jolla on annettu id, ja vapauttaa sen varaaman muistin. Älä unohda kutsua tätä, kun et enää tarvitse pinoa.
ds_stack_clear(id) Tyhjentää pinon, jolla on annettu id, jolloin kaikki siinä oleva tieto poistetaan, mutta itse pinoa ei tuhota.
ds_stack_copy(id,source) Kopioi pinon source pinoon, jolla on annettu id.
ds_stack_size(id) Ilmoittaa pinoon, jolla on annettu id, säilöttyjen arvojen määrän.
ds_stack_empty(id) Ilmoittaa, onko pino, jolla on annettu id, tyhjä. Tämä on sama asia, kuin jos testaisi, onko pinon koko 0.
ds_stack_push(id,val) Työntää arvon pinoon, jolla on annettu id.
ds_stack_pop(id) Nostaa pinon, jolla on annettu id, päällimmäisen arvon ja poistaa sen pinosta.
ds_stack_top(id) Palauttaa pinon, jolla on annettu id, päällimmäisen arvon, mutta ei poista sitä pinosta.
ds_stack_write(id) Muuntaa pinotietorakenteen, jolla on annettu id, merkkijonoksi ja palauttaa sen. Tätä merkkijonoa voidaan sitten käyttää esim. sen tallentamiseen. Tällä tavoin tietorakenteiden tallentaminen helpottuu.
ds_stack_read(id,str) Lukee tietorakenteen annetusta merkkijonosta (joka on luotu edellisellä funktiolla).