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