miércoles, 14 de marzo de 2012

3.1 Estructura Datos Pilas













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.
El ejemplo del que deriva el nombre de la estructura es una pila de platos. Sólo es posible añadir platos en la parte superior de la pila, y sólo pueden tomarse del mismo extremo.
El nodo típico para construir pilas es:


struct nodo {
int dato;
struct nodo *siguiente;
};










Los tipos que definiremos normalmente para manejar pilas serán casi los mismos que para manejar listas, tan sólo cambiaremos algunos nombres:


typedef struct _nodo {
int dato;
struct _nodo *siguiente;}
tipoNodo; typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;


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.

No hay comentarios:

Publicar un comentario