Pila (informatika)

Pila bat (ingelesez stack) ordenatutako zerrenda bat edo datu-egitura bat da non haren elementuak atzitzeko moduari LIFO (ingelesez Last In First Out, "azkena sartzen lehenengoa irtetzen") deritzo eta datuak gordetzeko zein berreskuratzeko balio du. Egitura hori maiz erabiltzen da informatikaren arloan sinplea delako eta egituraren ordena inplizitua delako.

Datuak maneiatzeko oinarrizko bi eragiketa erabiltzen dira: metatzea (push), pilan objektu bat sartzeko, eta haren alderantzizko eragiketa,  ateratzea (edo erretiratzea, pop), metatutako azken elementua ateratzeko.

Une oro, pilaren goiko aldea bakarrik atzitu ahal da, hots, metatutako azken objektua (TOS deritzo, Top of Stack ingelesez). Ateratze eragiketak elementu hori eskuratzea ahalbidetzen du pilatik ateraz, eta horrela hurrengoaren atzipena ahalbidetzen da (lehenago metatua), TOS berria izatera pasatzen dena.

Eguneroko objektuekin analogia eginez, metatze eragiketa plater bat plater-pila baten gainean jartzearen baliokidea izango litzateke, eta  ateratze eragiketa plater hori erretiratzearen baliokidea.

 Pilak hurrengo testuinguruetan erabili ohi dira:
 Postfixu notazioko adierazpenak ebaluatzeko (idazkera poloniar alderantzizkoa).
 Testuingururik gabeko hizkuntzen egiaztatzaile sintaktikoetan.
 Errekurtsibitatearen inplementazioan.

Historia 
Pilaren metodoa, adierazpenak ebaluatzeko, 1955ean proposatu zen eta bi urte geroago Fiedrich L. Bauer-ek patentatu zuen, zeinek 1988an "IEEE Computer Society Pioneer Award" saria jaso zuen, datu-egitura horren garapenean egindako lanarengatik.

Deien pila 
Deien Pila memoriako segmentu bat da non datu-egitura hori erabiltzen den informazioa gordetzeko exekutatzen ari diren azpirrutinen deiei buruz. Azpirrutina horiek prozesuan dagoen programa bati dagozkio.

Azpirrutina-dei berri bat egiten den bakoitzean, sarrera berri bat metatzen da haren inguruko informazioarekin, esaterako aldagai lokalak. Batez ere, itzuleraren puntua gordetzen da, bertara itzultzeko azpirrutina amaitzen denean (aurreko azpirrutinara itzultzeko eta haren exekuzioa jarraitzeko deia eta gero).

Pila datu-mota abstraktu gisa 

Datu-mota gisa laburtzeko, pila bat nodoen edukiontzi bat da eta oinarrizko bi eragiketa ditu: push (edo metatzea) eta pop (edo ateratzea). 'Push'ak nodo bat gehitzen du pilaren goiko aldean, azpian gainerako nodoak utziz. 'Pop'ak pilaren uneko goiko nodoa kentzen du eta itzultzen du.

Eragiketak 

Pila batek nahitaezko bi eragiketa ditu: metatzea eta ateratzea. Pilen inplementazio berrietan, ohiko erabilera duten eragiketa gehitu ohi dira.

  Sortzea: pila hutsa sortzen da.
 Metatzea: elementu bat gehitzen da pilara. (push)
 Ateratzea: pilaren gaineko elementua kentzen da. (pop)
 Tontorra: pilaren gainean dagoen elementua itzultzen da. (top edo peek)
 Hutsik:' egiazkoa itzultzen da pila hutsa badago eta faltsua kontrako kasuetan.

Kanpo estekak 

Programazioa