Entonces, ahora sabemos qué es una cola básica, pero ¿qué pasa con la cola de prioridad?? En la cola de prioridad, cada elemento que ingresa a la cola tiene dos valores, un valor de prioridad y los datos. Los elementos que tienen el mismo valor de prioridad se ejecutarán en función de FIFO (primero en y primera vez) pero los elementos con mayor prioridad que otros se ejecutarán primero sin importar cuándo se agregaron a la cola.
Este es un tema de estructura de datos avanzado, por lo que asumimos que está familiarizado con cómo funciona JavaScript y las funcionalidades básicas de JavaScript. Para implementar una cola prioritaria en JavaScript, primero debemos saber cómo implementar una cola simple en JavaScript.
Implementación de una cola en JavaScript
Los conceptos de estructura de datos como colas, pilas, montones o colas prioritarias se implementan utilizando matrices en JavaScript.
Definamos una función que definirá nuestra estructura:
function queue ()Sabemos que las colas se implementan con matrices, por lo que vamos a crear una matriz llamada Collections
Dentro de la función:
array = [];Ahora, para implementar la estructura de datos de colas, necesitamos implementar las siguientes funcionalidades:
Todas estas funcionalidades se agregan fácilmente utilizando las siguientes líneas de código:
functionue ()Ahora, que tenemos nuestra estructura de datos lista, necesitamos crear un objeto asignado a esta estructura, lo hacemos usando la línea:
var newqueue = new Queue ();Ahora, necesitamos que se coloquen algunos elementos en la cola, lo hacemos usando las siguientes líneas:
nieve.enqueue ('a');Para ver cómo se ve nuestra cola en este momento, podemos llamar a la función de impresión así:
nieve.imprimir();Obtenemos la siguiente salida en nuestra consola:
Para probar, si la implementación de primera entrada y primera vez funciona correctamente, vamos a despojar un elemento de la lista e imprimir el valor más importante e imprimir la cola completa con las siguientes líneas:
nieve.dequeue ();El fragmento de código completo de la estructura de la cola es:
functionue ()Al ejecutar este código, podemos observar el siguiente resultado en la consola:
Entonces, cuando llamamos a la función dequeue, eliminó el primer elemento de la lista. Después de eso, verificamos el elemento principal en la cola que fue "b". Luego imprimimos la cola nuevamente y nos dio la cola restante en el orden correcto. Esto significa que la implementación de nuestra cola funciona perfectamente:
Implementación de una cola de prioridad en JavaScript
Sabemos que la diferencia entre una cola normal y una cola de prioridad es que los elementos dentro de la cola de prioridad contienen un valor de prioridad junto con sus datos. Esto significa que toda la funcionalidad de la cola de prioridad es la misma que una cola normal, excepto la Función de enqueue.
En las colas prioritarias, la función Enqueue coloca el elemento de mayor prioridad antes del elemento de menor prioridad. Y si dos o más elementos tienen la misma prioridad, entonces se colocan elementos recién agregados en el extremo posterior de la cola para mantener un método de valoración de primera entrada y primera vez.
Por lo tanto, teniendo en cuenta que podemos escribir la nueva función de Enqueue para la cola de prioridad con las siguientes líneas de código:
este.enqueue = function (newmem)Lo primero que hacemos en la función Enqueue es que si la colección está vacía, entonces simplemente empujamos el elemento a la cola:
si esto.esta vacio())Si la cola no está vacía:
El conjunto enoue la función se verá así:
este.enqueue = function (newmem)El resto de las funciones de la cola prioritaria son más o menos lo mismo que la cola normal, con un ligero cambio en la función degradación para mostrar solo el nombre y no el valor del elemento. Todo el fragmento de código de cola de prioridad es como:
functionPriorityQueue ()Tiempo para poner elementos en la cola utilizando las siguientes líneas de código:
var pq = new priorityqueue ();Como puede ver, la primera prioridad es la "Microsoft" elemento con valor 1. Debe estar al comienzo de la cola incluso si se agregó en el 3er lugar.
Ahora, si llamamos a la función Dequeue y luego la función de impresión nuevamente, el primer elemento debe eliminarse de la lista:
pq.dequeue ();Ahí tienes, nuestra cola prioritaria funciona perfectamente.
Conclusión
Las colas son conceptos de estructura de datos que funcionan en el método de valoración de primera vez y primero en salir. Del mismo modo, las colas de prioridad funcionan en la valoración de la primera y primera out, pero con un valor adicional de "prioridad", el elemento con la más alta prioridad se ejecutará primero sin importar cuándo se agregaron a la cola. En esta publicación, aprendimos cómo implementar una cola simple en JavaScript y cómo usar esa estructura de datos para implementar el funcionamiento de una cola de prioridad.