#---------Quitar elemento de forma recursiva --------# fun quitar(e,p): si vacia?(p): dev p si no: si e == cima(p): dev desapilar(p)` si no: dev apilar(cima(p), quitar(desapilar(p))) fin si fin si fin fun #---------------Iterativa ----------------# fun quitar(e,p): pAux = p #Copia de la pila original pRes = NULL si cima(pAux) != e: apilar(cima(pAux), pRes) fin si desapilar pAux dev pAux fin fun #---------------Elemento menor ---------# fun menor(p): pAux = p #Copia de la pila original eAux = cima(pAux) desapilar(pAux) mientras !es_vacia(pAux): si cima(pAux) < eAux: eAux = cima(pAux) fin si desapilar(pAux) fin mientras dev eAux fin fun #----------------Ordena por entrada--------# fun sort_e(p): pAux = NULL mientras !es_vacia(p): apilar(menor(p),pAux) quitar(menor(p), p) fin mientras dev pAux fin fun #-------Ordena la cola--------------# fun menor(p): cAux = c #Copia de la cola original eAux = cima(cAux) desencolar(cAux) mientras !es_vacia(cAux): si cima(cAux) < cAux: cAux = cima(cAux) fin si desencolar(cAux) fin mientras dev cAux fin fun #--------Ordena la cola por prioridad-------# fun sort_pr(c): cAux = NULL pAux = NULL mientras !es_vacia(c): apilar(menor(c), pAux) quitar(menor(c), c) fin mientras mientras !es_vacia(pAux): encolar(cima(pAux),cAux) desapilar(pAux) fin mientras dev cAux fin fun #---------------------------------------- tipo Pasajero: ID: int Hora: int duracion: int pais: int #país 1 tiene prioridad 1, entonces asociamos directamente cada país a su prioridad tipo Box: ID: int Ocupado: bool Pila, para enviar a los pasajeros a la cola de los boxes Cola, para gestionar la llegada de los pasajeros a los boxes Aeropuerto, estructura de datos (lista, pila, cola), almacena los que han llegado Funciones: fun pasa_tiempo(int x) => permite avanzar el tiempo interno de las estructuras # Simulacro de funcionamiento Pila de pasajeros generado por nosotros, desordenada (pila_pasajeros) Aplicamos sort_e y lo ordenamos por llegada En t = 0 se encola el primer pasajero #--------- Ejecutamos pasa_tiempo(x) --------# Se ocupan los diferentes boxes Ordenamos por prioridad los presentes en cola #--------- Ejecutamos pasa tiempo -----# Duración de boxes cumplida, se envía el pasajero a la cola: Aeropuerto Repetir