Por Alejandra Madrigal Pardo – Estudiante de la carrera de Ingeniería Informática

Las colas son un tipo de lista que se conocen por tener la propiedad “FIFO”, por sus siglas en inglés “first in first out”, que traducidas al español sería “primero que entra primero que sale”. La cola se conoce como una secuencia de elementos, ya que va en orden hasta que esta se encuentra vacía. En JAVA, las colas tienen varias operaciones definidas que hacen el manejo de estas más fácil, como por ejemplo “.add”, esto agrega un elemento a la cola, o “.poll”, esto saca el primer elemento de la cola (FIFO).

Las colas de prioridades no son iguales a las colas normales de JAVA, pero son muy similares. Estas, cuando se les da un dato, lo revisan y ven qué tipo de prioridad tiene, y ven en ese momento cuál elemento tiene menor prioridad para eliminarlo. Si la lista está llena, la cola de prioridad no va a permitir que se ingrese otro dato, en otras palabras, siempre va a rechazar el elemento nuevo si la cola se encuentra llena. Estas son muy utilizadas para hacer grafos y árboles.

Como ejemplo de estas, y para que sea mucho más sencillo de entender, se puede ver el caso de un banco. Las personas entran y hacen fila para sacar su dinero y hacer consultas, pero, en el caso de que se encuentren con un adulto mayor o una mujer embarazada haciendo fila, estas van a pasar primero porque tienen prioridad sobre las demás personas que hacen fila normal. Así es cómo funciona la cola de prioridad, ya que, si algo tiene prioridad sobre otro elemento, este tiene que ir primero y va saliendo el elemento que tiene menos importancia para la cola. Esta va a ordenar la cola según se le dé la orden; en otras palabras, si se quiere que vaya de menor a mayor esta lo va a ordenar así. También puede ser usada con el tipo de dato “String” que ordena las cadenas de texto, ya sea de A-Z o por el largo de las palabras, eso ya depende del usuario y de cuál le funciona mejor para el programa.

Como se puede ver, la diferencia entre una cola y una cola de prioridad es un poco obvia de entender, pero si esta no se sabe manipular bien no va a funcionar como se supone que debe. Estas tienen las mismas operaciones que las colas, ya que hacen lo mismo, pero con la diferencia de que las de prioridad no sacan de la cola el primer numero ingresado, sino el número con la menor prioridad. Se pueden ver este tipo de colas en los árboles binarios y en los grafos, ya que es más sencillo de acomodar.

En conclusión, este tipo de cola es muy funcional si se tiene un orden establecido para el programa, ya que estas colas se van a asegurar de mantener ese orden y que el programa siga funcionando. También se puede ver que estas no solo se usan en la programación, ya que muchos elementos de la vida diaria mantienen un orden que le da prioridad a las personas que lo necesitan. Otro ejemplo de esto se observa en los hospitales, ya que las personas que se encuentran en condiciones de urgencia son las que van primero.

 

MOXIE es el Canal de ULACIT (www.ulacit.ac.cr), producido por y para los estudiantes universitarios, en alianza con el medio periodístico independiente Delfino.cr, con el propósito de brindarles un espacio para generar y difundir sus ideas.  Se llama Moxie - que en inglés urbano significa tener la capacidad de enfrentar las dificultades con inteligencia, audacia y valentía - en honor a nuestros alumnos, cuyo “moxie” los caracteriza.

Referencias Bibliográficas:
• Crespo, A. C. (18 julio de 2013). Curso de Java: colas de prioridad. Recuperado de https://www.redeszone.net/2012/04/02/curso-de-java-colas-de-prioridad/
• García, A. G. (23 mayo de 2016). Colas con prioridad en java. Recuperado de http://pilascolasenjavaestructuradedatos.blogspot.com/2016/05/colas-con-prioridad-en-java.html
• López, K. L. (4 febrero de 2017). Estructuras de datos con Java: un enfoque práctico. Recuperado de http://hp.fciencias.unam.mx/%7Ealg/estructurasDeDatos/capitulo6/capitulo6.html
• Oblancarte, P. O. (1 agosto de 2014). Estructura de datos - Queue (Cola) - Oscar Blancarte - Software Architecture. Recuperado de https://www.oscarblancarteblog.com/2014/08/01/estructura-de-datos-queue-cola/