Pilas Estructura de Datos y Algoritmos Mtr. Ing. Nancy López Pilas Pilas • El TAD pila es un tipo especial de lista 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 “apilar" y “desapilar". • Las escrituras de datos siempre son inserciones de nodos, y las lecturas siempre eliminan el nodo leído. • La lista (pila) tiene un comportamiento LIFO (Last In First Out), el último en entrar es el primero en salir. Pilas typedef struct nodo{ int valor; struct nodo *siguiente; }tipoNodo; typedef tipoNodo *pNodo; typedef tipoNodo *Pila; Pilas Operaciones básicas: • Push (apilar al principio) • Pop (desapilar: leer y eliminar) • Pila vacía (indica si la pila está vacía) • Cima (muestra el último elemento insertado) • Ver pila (muestra el contenido de toda la pila) pNodo crearNodo(int); pNodo crearNodo(int val) { pNodo aux=new tipoNodo; if (aux) { aux->valor=val; aux->siguiente=NULL; return aux; } } void apilar(Pila &, pNodo); void apilar(Pila &pila, pNodo aux) { aux->siguiente = pila; pila = aux; } //insertar al ppio. pNodo desapilar(Pila &); pNodo desapilar(Pila &p) { pNodo aux, dev=new tipoNodo; aux=p; if(!p) return NULL; dev->valor=p->valor; p=p->siguiente; delete(aux); return dev; } pNodo cima(Pila ); pNodo cima(Pila pil) { return (pil); }