Las pilas o stacks son una estructura de datos, en la cual se agregan valores a una pila de determinado tamaño, los valores entran y al sacar valores se saca el ultimo valores agregado, esto es FIFO.
Vamos a crear un ejemplo de PILA o STACK en python, para entender un poco de las pilas, la pila debe dar errores, si la pila esta llena PILA LLENA, y si la pila esta vacia PILA VACIA.
La pila debe tener un tamaño, el cual es el numero de elementos que se pueden meter en la pila, cuando se intente agregar mas elementos del tamaño de la pila se va a mostrar el error PILA LLENA.
Cuando la pila tengo 0 ( cero ) valores y se intente sacar un valor, entonces se mostrara el error PILA VACIA.
Para agregar y sacar valores vamos a usar el valor o variable CIMA o TOPE el cual es el valor o posicion del ultimo valor que se agrego.
Cuando se agregue un valor a la pila, el TOPE incrementara 1, y cuando se elimine o saque un valor de la pila el TOPE disminuira 1.
Normalmente, la funcion push, se usa para insertar datos a la pila, y la funcion pop se usa para sacar un valor de la pila.
Codigo
El siguiente codigo en python sirve para ejemplificar el tema de las pilas.
El programa pilamaster.py, muestra un menu, donde se puede seleccionar las siguientes opciones:
## PROGRAMA PILAMASTER ##
############################
1. INSERTAR DATO
2. SACAR DATO
3. MOSTRAR PILA PILA
4. SALIR
SELECCIONA OPCION:Y al seleccionar la opcion, se ejecuta la funcion correspondiente, a continuacion el codigo.
## PILA EN PYTHON BY EVILNAPSIS
pila = []
tamanio = 10
top=0
while True:
print("## PROGRAMA PILAMASTER ##")
print("############################") # SIMBOLOS DECORATIVOS
print("1. INSERTAR DATO")
print("2. SACAR DATO")
print("3. MOSTRAR PILA PILA")
print("4. SALIR")
r = int(input("SELECCIONA OPCION: "))
print("############################")
print() # SEPARADOR DECORATIVO
if r==1:
## FUNCION PUSH, AGREGAR ELEMENTO A LA PILA
if top==tamanio:
print("PILA LLENA: NO SE PUEDE AGREGAR")
print("############################")
else:
x = int(input("Insertar numero a la pila: "))
pila.insert(top, x)
top=top+1 # INCREMENTAMOS EL TOPE O CIMA
elif r==2:
## FUNCION POP, SE ELIMINA UN ELEMENTO DE LA PILA
if top==0:
print("PILA VACIA: NO SE PUEDE SACAR")
print("############################")
else:
x = pila[top-1]
del pila[top-1] # ELIMINAMOS EL ELEMENTO
print(x)
top=top-1 # DECREMENTAMOS EL TOPE O CIMA
elif r==3:
## FUNCION PARA MOSTRAR LA LISTA DE ELEMENTOS DE LA PILA
print("## ELEMENTOS DE LA PILA ##")
print("## LA CIMA ES ", top)
print("############################")
for x in pila: # CICLO FOR ULTILIZADO PARA RECORRER Y MOSTRAR LOS ELEMENTOS DE LA PILA
print(x)
else:
exit() # FINALIZAMOS EL PROGRAMA
Solo tenemos que guardar en el archivo pilamaster.py, ejecutar y utilizar el programa.
py pilamaster.pyResultado de la ejecucion del script.

No olvides dejar tus comentarios.