Una pila (stack) es un tipo especial de lista lineal en la que la inserción y borrado de nuevos elementos se realiza sólo por un extremo que se denomina cima o tope (top).
Dado que las operaciones de insertar y eliminar se realizan por un solo extremo (el superior), los elementos solo pueden eliminarse en orden inverso al que se inserta en la pila.
El último elemento que se pone en la pila es el primero que se puede sacar; por ello, a estas estructuras se le conoce por el nombre de LIFO (last-in, first-out, último en entrar, primero en salir).
Las pilas se pueden representar en cualquiera de las tres formas:
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Las operaciones más usuales asociadas a las pilas son:
Push meter o poner: operación de insertar un elemento en la pila;
Pop sacar o quitar: operación de eliminar un elemento de la pila;
P = CIMA puntero de la pila
VACIA función booleana "pila vacía"
PUSH subprograma para añadir, poner o insertar elementos
POP subprograma para eliminar o quitar elementos
LONGMAX longitud máxima de la pila
S (i) elemento i-eximo de la pila S
X elemento a añadir / quitar de la pila
Diseño de una pila
Algoritmo de una pila
Var PILA: array [1..LONGMAX] de enteros
Función VACÍA { subprograma función VACÍA}
Inicio
Si p = 0
Entonces VACIA = cierto
Sino : VACIA = falso
Finsi
V = VACIA
Fin
{procedimiento METER (PUSH)}
procedimiento METER
Inicio
Si P = LONGMAX
entonces
escribir "error en METER"
escribir "desbordamiento de la pila"
Sino
P = P + 1
S(P) = X
Finsi
Fin
Procedimiento SACAR
Inicio
Si VACIA {invocación a la función VACIA}
Entonces
Escribir "error en SACAR"
Escribir "pila vacía"
Sino
X = S(P)
P = P – 1
Finsi
Fin
Las pilas son utilizadas ampliamente para solucionar una amplia variedad de problemas. Se utiliza en compiladores, sistemas operativos y en programas de aplicación.
Cuando dentro de un programa se realizan llamadas a subprogramas el programa principal debe recordar el lugar donde se hizo la llamada, de modo que pueda retornar allí cuando el programa se haya terminado de ejecutar
Para ver el gráfico seleccione la opción ¨Descargar trabajo¨ del menú superior
Héctor Estigarribia