Concepto de cola de prioridad

La cola de prioridad es un tipo de dato abstracto, generalmente implementado con un montículo binario por su eficiencia.

<aside> 💡 Un montículo (Heap en inglés) es una estructura de datos de tipo árbol con información perteneciente a un conjunto ordenado.

Untitled

</aside>

Nos sirve para recorrer una colección de datos utilizando un orden de prioridad. por defecto este orden es ascendente, por ejemplo con números se posiciona en el tope el más chico y con los strings se posiciona en el tope respetando el orden del abecedario.

Esta se utiliza en distintos algoritmos como en Dijkstra o A*.

Implementación en Java

Implementación de una cola simple

Esta es la definición de una cola simple, esta es una linkedlist que implementa la interfaz de queue.

Queue<String> cola1 = new LinkedList<String>();

Definición de una cola de prioridad

Para utilizar una cola de prioridad tenemos que utilizar la clase PriorityQueue y la importamos desde el paquete java.util

ProrityQueue<Integer> colaDePrioridad1 = new PriorityQueue<Integer>();

Métodos de una PriorityQueue

1. add()

Sirve para agregar elementos a la cola

2. remove()

Quita el tope de la cola, por defecto, en el tope se almacena el más chico o el más cercano a la “A” en caso de strings


Ejemplos en código

//Cola tradicional
Queue<Integer> cola1 = new LinkedList<Integer>();
		
		cola1.add(2);
		cola1.add(1);
		cola1.add(5);
		cola1.add(3);
		cola1.add(9);
		System.out.println("Cola 1: " + cola1); // Cola 1: [2, 1, 5, 3, 9]