Práctica Sem 11

Anuncio
CI-2126 Computación II
Practica 10
1) Se tiene el TAD ColaPrioridad, que consiste en el TAD Cola, pero con una diferencia, los elementos de la
cola tiene un campo adicional llamado prioridad, y los elementos se insertan en la cola en el lugar adecuado
según esta prioridad. La salida de la cola sigue siendo por el primer elemento de la misma, sólo que no
necesariamente un nuevo elemento se encola de último. Todas las prioridades son positivas, y se inserta en orden
de mayor a menor en la cola, es decir, elementos de mayor prioridad se insertan adelante y serán desencolados
antes. Implemente tanto insertarColaPrioridad, definido como lo anterior, así como buscarElemPrioridad, que
dado la cola, y un rango de prioridades, devuelva cuantos elementos hay en la cola entre esas dos prioridades. Se
respeta el orden de aquellos elementos de igual prioridad que fueron insertados antes.
/* Definición adelantada del TDA Lista_t */
typedef struct ListaStruct_t* Lista_t;
/* Implementación del TDA Lista_t como un TDC ListaStruct_t de punteros */
typedef struct ListaStruct_t {
Elem_t info;
int prioridad;
Lista_t siguiente;
} ListaStruct_t;
/* Implementación del TDA Cola_t como un TDC ColaStruct_t de punteros */
typedef struct ColaStruct_t {
Lista_t primero;
Lista_t ultimo;
} ColaStruct_t;
/* Devuelve una Cola_t con el elemento insertado de acuerdo a su prioridad, de mayor a menor */
Cola_t insertarColaPrioridad(Cola_t C, Elem_t E, int prio);
/* Devuelve cuantos elementos de la cola están entre [prio_min .. prio_max] */
int buscarElemPrioridad(Cola_t C, int prio_min, int prio_max);
Descargar