Las colas prioritarias son una forma de adaptador de contenedores que se desarrolla especialmente para que, de acuerdo con algunas rigurosas condiciones de clasificación débil, su componente inicial es siempre el más grande de los elementos que posee. Este marco se asemeja a un montón en que los componentes se pueden agregar en cualquier momento, y solo se puede obtener el número máximo de componentes de montón (el primer elemento en la lista de prioridades).
Las colas prioritarias se construyen como inversores de contenedores, que son clases que utilizan una instancia cerrada de una categoría de contenedor particular como su contenedor real y ofrecen un conjunto particular de variables y funciones para recuperar sus componentes. El valor más alto de la cola de prioridad, o la "espalda" del contenedor, es donde se empujan los componentes desde."
¿Cuál es una cola de prioridad en c?++?
El primer componente en una cola prioritaria es el más grande de todos los componentes de la cola, y los componentes están en orden descendente. Una cola prioritaria es una forma de adaptador de contenedores en C ++ que solo maneja el componente de mayor prioridad.
Compare una cola con una cola prioritaria
No hay prioridad en una cola; Por el contrario, un contenedor de cola considera que el elemento tiene la máxima prioridad. La primera regla de primera salida (FIFO) se aplica a la cola; Sin embargo, en la cola de prioridad, el componente con la más alta prioridad se eliminaría primero. Si varios elementos tienen una prioridad similar, el orden de la cola se utilizaría en esta situación.
Sintaxis de la cola de prioridad
La cola prioritaria en C ++ tiene la siguiente sintaxis:
Los parámetros se describen de la siguiente manera:
La cola de prioridad se construye con un máximo-heap de forma predeterminada en c++.
Sintaxis de la cola de prioridad mínimo
La creación de la sintaxis Min-Weap de la cola prioritaria es la siguiente:
Aquí mayor es una clase de comparación, y Vector es un contenedor de biblioteca de plantillas estándar.
Beneficios del uso de la cola de prioridad
Se asignan peso a los vértices, lo que les permite ascender la cola en lugar de caer hacia atrás, ya que están en una cola estándar.
Descubra del uso de la cola de prioridad
Debido a que también necesitamos usar una operación de adición para agregar los elementos de acuerdo con su prioridad, la inserción ya no lleva una cantidad fija de tiempo, como hacer colas. La implementación utilizando una lista vinculada permite mantener un tiempo de inserción consistente.
Metodologías de cola prioritaria
Las funciones de cola de prioridad de C ++ son las siguientes:
Realicemos las funciones mencionadas anteriormente en diferentes códigos.
Ejemplo no 1
Agregaremos un elemento a una cola prioritaria en este ejemplo. Para agregar un elemento a la cola de prioridad, utilizaremos la función push ().
Los archivos de encabezado requeridos y se incorporarán al comienzo del programa. Entonces el espacio de nombres estándar se agregará como STD. Ahora se llamaría a la función principal (). La cola de los valores enteros se creará a continuación. Esta cola será una cola prioritaria. Se agregarán diferentes valores a esta cola prioritaria. Los números se insertarán mediante el uso de la función push (). Se agregarán tres valores aleatorios utilizando el método de empuje. La declaración "cout" se empleará para representar el texto "Elementos de la cola de prioridad" en la consola.
Después de mostrar esta línea para imprimir los valores del bucle "while" de cola se utilizará; Dentro del bucle "while", la función vacía () se aplicará para verificar si la cola está vacía o no. El método pop () se utilizará para comenzar a imprimir los valores de la cola en orden descendente. Entonces el método pop () también se aplica a los valores de la cola. El "retorno 0" debe incorporarse al final.
Hemos construido una cola prioritaria que tiene enteros llamados num. La función push () se ha utilizado para agregar las diferentes entradas a la cola: 12, 30 y 72.
Ejemplo no 2
A diferencia de los vectores y otras estructuras, no podemos atravesar una cola prioritaria. Por esta razón, hemos imprimido a los miembros de la cola de prioridad utilizando un bucle de tiempo y métodos de cola prioritarios diferentes.
Esto es para que la cola prioritaria funcione como una estructura de datos de cola prioritaria típica, por lo que es un adaptador de contenedor STL con acceso limitado. Como resultado, imprimimos su parte superior antes de hacer estallar periódicamente el elemento dentro de un bucle hasta que la cola esté vacía.
Ejemplo no 3
Decidimos eliminar el artículo de la cola de prioridad en este caso. La función pop () podría usarse para eliminar un componente de la cola de prioridad. El valor máximo se elimina en este enfoque.
Iniciaremos el código integrando las bibliotecas y el espacio de nombres estándar. Las bibliotecas contienen y . El método para mostrar la cola de prioridad se llamaría utilizando display_priority_queue (). La cola contiene los números enteros, por lo que se suministrará "int" como argumento de la función. Después de todo esto, se invocará el método Main (). La cola se creará. La función push () se utilizará para agregar diferentes valores en la cola de prioridad definida. La declaración "Cout" se usa para mostrar los elementos originales de la cola de prioridad.
Entonces se aplicará el método pop (). Esta función elimina el valor especificado de la cola de prioridad. Ahora, la declaración "cout" se empleará para mostrar los valores de la cola después de eliminar un elemento de la cola. El comando "return 0" se agregaría. A continuación, el método de utilidad se utilizará para mostrar la cola de prioridad definida. El bucle "while" se empleará. Dentro del bucle "while" bucle () y los métodos top () se utilizarán. La condición de bucle se aplicará a la función vacía (). El método pop () se utilizaría para eliminar el valor más alto de la cola de prioridad.
Aquí, hemos hecho una cola de prioridad entera denominada num. Los componentes iniciales de la cola de prioridad son "61, 23, 45."El atributo más alto se eliminó luego utilizando la técnica pop (). Entonces, el resultado será "45, 23."
Ejemplo no 4
En este caso, la función superior () se utilizará para recuperar el valor máximo de la cola de prioridad.
Las bibliotecas y el espacio de nombres predeterminado se integrarán antes de comenzar a escribir el código. y ambos están disponibles en las bibliotecas. Luego llamaremos a la función principal (). El método de creación de cola prioritaria se invocaría. La función recibirá el argumento "INT" porque la cola contiene solo números enteros. Se agregarán diferentes valores a la cola de prioridad especificada utilizando la función push ().
Pop () se usará después de que los elementos se hayan agregado a la cola de prioridad. Esta función mostró el valor máximo de la cola de prioridad proporcionada. El texto "Elemento superior de la cola de prioridad" se muestra utilizando la instrucción Cout. La instrucción "return 0" podría aplicarse para finalizar el programa.
Ejemplo no 5
En esta ilustración, verificamos si la cola prioritaria está vacía o no usando la función vacía (). Esta metodología produce:
Al comienzo del programa, los archivos de encabezado requeridos y se incluirían. Entonces STD se agregará al espacio de nombres estándar. Ahora se invocaría el método principal (). Habría una cola creada utilizando la función. Este método tomará el parámetro "cadena" ya que contiene valores con el tipo de datos "cadena" en esta cola. Esto tendrá una prioridad. "¿La cola contiene cualquier valor??"Se imprimiría usando el comando" cout ".
La condición "if-else" se utilizaría para determinar la respuesta. La función vacía () se aplicará dentro de la instrucción "si" para verificar si la cola tiene algún valor o no. Si la cola contiene algún valor, entonces la declaración "cout" imprime "sí", otra declaración "cout" imprime "no" como la salida. Como resultado, la línea titulada "Empujar los valores de la cola de prioridad" se muestra en la pantalla por la pantalla "Cout". La cola de prioridad se actualizará para incluir los nombres de varios países. El método push () se utilizaría para insertar los nombres. La técnica de empuje agregará los nombres de tres países. "¿La cola contiene cualquier valor??"Se imprimirá en la consola utilizando el comando" cout ".
La condición "if-else" se aplicará después de la visualización de esta línea. El método vacía () se usará una vez más para confirmar si la cola está vacía o no. El último "regreso 0" debe estar presente.
Para verificar si la cola de prioridad del país está llena o no, utilizamos la función vacía (). La cola está vacía al principio. País.vacía () Por lo tanto, devuelve verdadero. Después de eso, agregamos elementos a la cola y una vez más utilizamos la función vacía (). Esta vez, da resultados falsos.
Conclusión
Primero, exploramos qué cola de prioridad en C ++ es en este artículo. Luego contrastamos la cola simple con la cola prioritaria. Además, observamos la sintaxis de la cola prioritaria, así como sus beneficios y inconvenientes. Además, discutimos los diversos métodos de C ++ para las colas prioritarias. Se utiliza un contenedor llamado cola prioritaria para mantener componentes con prioridades. En contraste con las colas, que agregan o eliminan los componentes de acuerdo con la regla FIFO, los elementos en una cola de prioridad se eliminan de acuerdo con la prioridad. El componente inicial eliminado de la cola será el que tenga la máxima prioridad. El propósito de la cola de prioridad es administrar los componentes de acuerdo con la prioridad.
Se han implementado cinco instancias diferentes en este artículo. En primera instancia, utilizamos la función push () para insertar los elementos en la cola de prioridad. El segundo ejemplo utiliza un bucle "while" para mostrar los valores de la cola de prioridad. En el tercer escenario, utilizamos el método pop () para eliminar el valor máximo de la cola de prioridad. Con la ayuda de la función superior (), pudimos recuperar el valor más alto en la cuarta ilustración. En el último, empleamos el método vacía () para determinar si la cola prioritaria estaba vacía o no.