Pilas

Operaciones


Push, insertar elemento


Las operaciones con pilas son muy simples, no hay casos especiales, salvo que la pila esté vacía.


Push en Pila vacia
Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a él, además el puntero a la pila valdrá NULL:


Push en vacía
El proceso es muy simple, bastará con que:
  1. nodo->siguiente apunte a NULL.
  2. Pilaa apunte a nodo.




Podemos considerar el caso anterior como un caso particular de éste, la única diferencia es que podemos y debemos trabajar con una pila vacía como con una pila normal.
De nuevo partiremos de un nodo a insertar, con un puntero que apunte a él, y de una pila, en este caso no vacía:


Resultado
El proceso sigue siendo muy sencillo:





  1. Hacemos que nodo->siguiente apunte a Pila.
  2. Hacemos que Pila apunte a nodo.





Pop, leer y eliminar un elemento

Ahora sólo existe un caso posible, ya que sólo podemos leer desde un extremo de la pila.
Partiremos de una pila con uno o más nodos, y usaremos un puntero auxiliar, nodo:



  1. Hacemos que nodo apunte al primer elemento de la pila, es decir a Pila.
  2. Asignamos a Pila la dirección del segundo nodo de la pila: Pila->siguiente.
  3. Guardamos el contenido del nodo para devolverlo como retorno, recuerda que la operación pop equivale a leer y borrar.
  4. Liberamos la memoria asignada al primer nodo, el que queremos eliminar.
Si la pila sólo tiene un nodo, el proceso sigue siendo válido, ya que el valor de Pila->siguiente es NULL, y después de eliminar el último nodo la pila quedará vacía, y el valor de Pila será NULL.

Aplicaciones
Las pilas son utilizadas ampliamente para solucionar una amplia variedad de problemas. Se utiliza en compiladores, sistemas operativos y en programas de aplicación. Su implementación se puede hacer mediante Arrays Y Mediante listas enlazadas.

Un ejemplo de sus aplicaciones podrían ser los siguientes:
Los Navegadores en Internet almacenan en una pila las direcciones de los sitios más recientemente visitados.
Los editores de texto proporcionan normalmente un botón deshacer que cancela las operaciones de edición recientes y restablece el estado anterior del documento.