Estructuras de Datos PILAS Y COLAS EN C++ Rosa Barrera Capot [email protected] Las listas se clasifican según como es ingresada la información: Pilas – Ultimo en entrar es primero en salir Colas – Primero en entrar es primero en salir Listas – Cualquier otro tipo PILAS Una pila corresponde a un conjunto de datos, de tal forma que el último dato en ingresar es el primero en salir. TOP Donde: • TOP: Puntero que contiene la dirección del último nodo ingresado • TOP = NULL Pila vacía Función push() y pop() Push, corresponde a su nombre universal para ingreso a una Pila Pop, corresponde a su nombre universal para eliminar un elemento de una Pila Agrega/Elimina un solo nodo a la Pila. Todo en una pila, se realiza desde la cabeza. Pilas Ejercicio: Implementar clase Pila COLAS Una cola corresponde a un conjunto de datos, de tal forma que el primer dato en ingresar es el primero en salir. PRI ULT Donde: • PRI: Puntero que contiene la dirección de la cabeza de la cola •ULT: Puntero que contiene la dirección del último nodo de la cola • PRI = ULT = NULL Cola vacía struct nodo { int info; nodo *sig; }; class Cola { private: nodo *Pri; nodo *Ult; public: Cola(); ~Cola(); void ingresa(int n); void elimina(); void mostrar(); }; Cola::Cola() { Pri=Ult=NULL; } Cola::~Cola() { nodo *q; while(Pri) { q=Pri; Pri=Pri->sig; delete q; } } void Cola::ingresa(int n) { nodo *q; q=new nodo; q->info=n; q->sig=NULL; if(!Pri) { Pri=q; Ult=q; } else { Ult->sig=q; Ult=q; } } void Cola::elimina() { nodo *q; if (Pri) { q=Pri; Pri=Pri->sig; delete q; } else cout<<“LISTA VACIA”; } OTROS TIPOS DE LISTAS Listas circulares Listas doblemente enlazadas