La estructura Stack funciona apilando elementos, la acción principal es push que sirve para agregar elementos a la pila y la accion pop sirve para sacar los elementos de la pila, las pilas funcionan con el metodo LIFO "Last in Fist Out".
Nodo
Como en las estructuras anteriores vistas en este blog, todas las estructuras de datos tienen un nodo el cual sirve para almacenar la informacion que este contiene.
Los atributos usados para este nodo son:
los ya conocidos como data que es la parte donde el nodo almacena los datos, en este caso este atributo es de tipo String, pero esto puede variar dependiendo de las necesidades de uso.
next Es el puntero que almacena el nodo siguiente
Medodo push
El metodo push es el algoritmo que se ocupa de guardar y principalemente ordenar los datos, es la interfaz que nos permite comunicarnos hacia la estuctura de datos, consiste en agregar un nuevo nodo, cuando el nodo head es nulo el nuevo nodo se guarda en head. en el caso contrario el nodo_nuevo.next = head y el nodo head es igual al nodo nuevo.
Metodo pop
El metodo pop es la interfaz que nos permite retornar y sacar el dato de la estructura, una vez el dato es usado este es eliminado de la stack y el resultado es retornado por el metodo
Ejemplo de un stack en python
Lo descrito anteriormente representado en codigo python es el siguiente:
Complejidad
La complegidad la pila como podemos ver en el caso push es de O(1) y el metodo pop es O(1)
Recuerda que puedes colaborar en el repositorio para agregarle funcionalidades nuevas, tambien puedes descargar el repo y utilizarlas en tu proyecto
El archivo utilizado en esta entrada lo puedes encontrar aqui.