#include #include using namespace std; #include "ColaDePrioridadDecrementable.h" ColaDePrioridadDecrementable::ColaDePrioridadDecrementable(int identificadorMaximo) : prioridad{vector(identificadorMaximo + 1, -1)}, talla{0} { } void ColaDePrioridadDecrementable::insertar(int identificador, float prioridadInicial) { // Suponemos identificador <= identificadorMaximo, prioridadInicial >= 0, y no esta dentro prioridad[identificador] = prioridadInicial; talla++; } void ColaDePrioridadDecrementable::cambiarPrioridad(int identificador, float nuevaPrioridad) { // Suponemos identificador <= identificadorMaximo, nuevaPrioridad >= 0 y esta dentro prioridad[identificador] = nuevaPrioridad; } int ColaDePrioridadDecrementable::eliminarMinimo() { // Suponemos que no se llama a este metodo con cola de prioridad vacia int identificadorMinimo = -1; for (int identificador = 0; identificador < prioridad.size(); identificador++) if (prioridad[identificador] != -1 && (identificadorMinimo == -1 || prioridad[identificador] < prioridad[identificadorMinimo])) identificadorMinimo = identificador; prioridad[identificadorMinimo] = -1; talla--; return identificadorMinimo; } bool ColaDePrioridadDecrementable::estaVacia() const { return talla == 0; }