Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: VintageChanel en 28 Enero 2015, 03:14 am



Título: Ayuda con listas, pilas y colas
Publicado por: VintageChanel en 28 Enero 2015, 03:14 am
Por favor tengo que hacer esta tarea, la consigna dice:
Una cola prioridad tiene una estructura similar a la de una cola, con la diferencia que cada elemento tiene un campo que indica su prioridad. Realizar dos procedimientos, uno para ingresar un elemento en la cola prioridad y otro para extraerlo. Utilizar para ello un TDA COLA.
Trate de hacerlo sola pero no termino de entender del todo la consigna, o como hacerlo, digamos que hice una estructura y le puse la prioridad = 0, pero no tengo la menor idea de como seguir, se me dificulta mucho que sea un ejercicio "abstracto", no pido todo el codigo, sino una idea detallada de como podria hacerlo.
Por favor espero de que puedan aconsejarme un poco, de antemano, muchas gracias!!


Título: Re: Ayuda con listas, pilas y colas
Publicado por: Orubatosu en 28 Enero 2015, 08:43 am
Se me ocurren dos formas.

Una es que obviamente uses una estructura, donde uno de los campos sea un entero que indique la prioridad. El procedimiento de entrada comprueba que la prioridad no esté repetida (si es necesario), y ordena la lista nuevamente según prioridad.

El otro sería usar un mapa, donde el elemento llave sea la prioridad, de ese modo te cargas de un plumazo la necesidad de ordenar y de comprobar repetidos, solo has de comprobar antes de añadir un campo que la prioridad no está repetida.

Si es a un nivel mas básico, usa un arreglo (o array) de un struct donde uno de los campos sea el entero que indique la prioridad.

También puedes obviar el reorganizar la estructura si el procedimiento de sacar datos simplemente busca el que tenga mas prioridad para extraerlo

Claro que no tenemos claro si estamos hablando de C, C++ y si puedes usar o no contenedores de la STL