ESTRUCTURA DE DATOS
PILAS
OPERACIONES BÀSICAS
CON PILAS
Las pilas tienen un conjunto de operaciones muy limitado, sólo permiten las operaciones de "push" y "pop":
- Push: Añadir un elemento al final de la pila.
- Pop: Leer y eliminar un elemento del final de la pila.
PUSH, INSERTAR
ELEMENTO
Push en una pila vacía
El proceso es muy simple, bastará con que:
- nodo->siguiente apunte a NULL.
- Pilaa apunte a nodo.
Push en una pila no vacía
El proceso sigue siendo muy sencillo:
- Hacemos que nodo->siguiente apunte a Pila.
- Hacemos que Pila apunte a nodo.
DECLARACIÒN DE TIPOS
PARA MANEJAR PILAS EN C
Los tipos que definiremos normalmente para manejar pilas serán casi los mismos que para manejar listas, tan sólo cambiaremos algunos nombres:
- tipoNodo es el tipo para declarar nodos, evidentemente.
- pNodo es el tipo para declarar punteros a un nodo.
- Pila es el tipo para declarar pilas.
POP, LEER Y ELIMINAR UN ELEMENTO
- Hacemos que nodo apunte al primer elemento de la pila, es decir a Pila.
- Asignamos a Pila la dirección del segundo nodo de la pila: Pila->siguiente.
- Guardamos el contenido del nodo para devolverlo como retorno, recuerda que la operación pop equivale a leer y borrar.
- 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.
Una pila es un tipo especial de lista abierta en
la que sólo se pueden insertar y eliminar nodos en uno de los extremos de la lista. Estas operaciones se conocen como "push" y "pop", respectivamente "empujar" y "tirar". Además, las escrituras de datos siempre son inserciones de nodos, y las lecturas siempre eliminan el nodo leído.
Estas características implican
un comportamiento de lista LIFO
(Last In First Out), el último en entrar
es el primero en salir.