Una pila es una estructura de datos ordenados lineal de tal manera que estos se obtienen por un solo lado de la estructura. La forma de acceso a sus elementos es de tipo LIFO (del inglés Last In, First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Consecuentemente el acceso queda limitado al último elemento insertado.
Ejemplos de pilas:
Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push), que coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop), que retira el último elemento apilado. Adicionalmente se pueden implementar otras operaciones relacionadas.
class Pila:
top = None
def __init__(self):
self.sig = None
self.dato = None
def push(self, dato):
nuevo = Pila()
nuevo.dato = dato
nuevo.sig = Pila.top
Pila.top = nuevo
def pop(self):
if self.vacia():
print("No hay elementos en la pila")
else:
Pila.top = Pila.top.sig
return Pila.top.dato
def vacia(self):
if Pila.top == None:
return True
else:
return False
def imprimir(self):
tmp = Pila.top
while tmp != None:
if tmp.sig != None:
print (tmp.dato)
else:
print (tmp.dato)
tmp = tmp.sig
`
Ejercicio: