Beruflich Dokumente
Kultur Dokumente
Una pila (stack en ingls) es una lista ordenada o estructura de datos en la que el modo de acceso a
sus elementos es de tipo LIFO (del ingls Last In First Out, ltimo en entrar, primero en salir)
que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el
rea de informtica debido a su simplicidad y ordenacin implcita de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar (push), que coloca un
objeto en la pila, y su operacin inversa, retirar (o desapilar, pop), que retira el ltimo elemento
apilado.
En cada momento slo se tiene acceso a la parte superior de la pila, es decir, al ltimo objeto
apilado (denominado TOS, Top of Stack en ingls). La operacin retirar permite la obtencin de
este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con
anterioridad), que pasa a ser el nuevo TOS.
Por analoga con objetos cotidianos, una operacin apilar equivaldra a colocar un plato sobre una
pila de platos, y una operacin retirar a retirarlo.
Las pilas suelen emplearse en los siguientes contextos:
Evaluacin de expresiones en notacin postfija (notacin polaca inversa).
Reconocedores sintcticos de lenguajes independientes del contexto
Implementacin de recursividad.
Operaciones
Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las
implementaciones modernas de las pilas se suelen aadir ms de uso habitual.
nivel. La mayora de los lenguajes de programacin son de contexto libre de los idiomas que les
permite ser analizados con mquinas basadas en la pila.
Por ejemplo, el clculo: ((1 + 2) * 4) + 3, puede ser anotado como en notacin postfija con la
ventaja de no prevalecer las normas y los parntesis necesario:
12+4*3+
La expresin es evaluada de izquierda a derecha utilizando una pila:
Apilar cuando se enfrentan a un operando y
Desafilar dos operandos y evaluar el valor cuando se enfrentan a una operacin.
Apilar el resultado.
De la siguiente manera (la Pila se muestra despus de que la operacin se haya llevado a cabo):
ENTRADA
1
2
+
4
*
3
+
OPERACIN
Apilar operando
Apilar operando
Aadir
Apilar operando
Multiplicar
Apilar operando
Aadir
PILA
1
1, 2
3
3, 4
12
12, 3
15