¿Qué es una pila?
Una pila es una estructura desarrollada para almacenar datos de una manera muy específica.. Imagina una pila de monedas. No puedes poner una moneda en ningún otro lugar sino en la parte superior de la pila. Del mismo modo, no puedes sacar una moneda de la pila desde ningún lugar que no sea la parte superior de la pila. Si deseas obtener la moneda que se encuentra en la parte inferior, debes eliminar todas las monedas de los niveles superiores.
El nombre alternativo para una pila (pero solo en la terminología de TI) es UEPS (LIFO son sus siglas en íngles). Es una abreviatura para una descripción muy clara del comportamiento de la pila: Último en Entrar - Primero en Salir (Last In - First Out). La moneda que quedó en último lugar en la pila saldrá primero.
Una pila es un objeto con dos operaciones elementales, denominadas convencionalmente push (cuando un nuevo elemento se coloca en la parte superior) y pop (cuando un elemento existente se retira de la parte superior).
Las pilas se usan muy a menudo en muchos algoritmos clásicos, y es difícil imaginar la implementación de muchas herramientas ampliamente utilizadas sin el uso de pilas.
Implementemos una pila en Python. Esta será una pila muy simple, y te mostraremos cómo hacerlo en dos enfoques independientes: de manera procedimental y orientado a objetos.
Comencemos con el primero.