#include #include using namespace std; #include "ColaDePrioridadDecrementable.h" ColaDePrioridadDecrementable::ColaDePrioridadDecrementable(int identificadorMaximo) : prioridad{vector(identificadorMaximo + 1)}, dentro{vector(identificadorMaximo + 1, false)}, talla{0} { } void ColaDePrioridadDecrementable::insertar(int identificador, float prioridadInicial) { // Suponemos identificador <= identificadorMaximo y no esta dentro prioridad[identificador] = prioridadInicial; dentro[identificador] = true; talla++; } void ColaDePrioridadDecrementable::cambiarPrioridad(int identificador, float nuevaPrioridad) { // Suponemos identificador <= identificadorMaximo 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 (dentro[identificador] && (identificadorMinimo == -1 || prioridad[identificador] < prioridad[identificadorMinimo])) identificadorMinimo = identificador; dentro[identificadorMinimo] = false; talla--; return identificadorMinimo; } bool ColaDePrioridadDecrementable::estaVacia() const { return talla == 0; }