Cómo usar la cola C ++

Cómo usar la cola C ++
Una cola es una colección de elementos, donde el primer elemento agregado a la lista, debe ser el primer elemento que se eliminará a continuación. Entonces, a medida que los artículos se agregan a la colección, está creciendo en tamaño, yo.mi. está creciendo en longitud. Siempre que se elimine cualquier elemento, debe ser el primero agregado. Si los elementos se eliminan continuamente, el siguiente se elimina, es el segundo elemento; el tercero se retira después, y así sucesivamente.

Después de eliminar el primer elemento de la lista original, el segundo se convierte en el primer elemento. Después de que se ha eliminado el segundo elemento, el tercero se convierte en el primer elemento, y así sucesivamente.

Un buen ejemplo de la vida real de una cola es cuando las personas se alinean para esperar el servicio o el bien. La primera persona se sirve primero antes del último. Sin embargo, la cola habló en este tutorial, es la cola de software, tal como está diseñada en C++.

FIFO

FIFO representa a primera entrada, First-Out. Es otra forma de apreciar la cola. Esto significa que el primer elemento en ingresar a la lista es el primer elemento que se eliminará, siempre que la eliminación sea. El comienzo de la lista se llama cabeza o frente; El final de la lista se llama respaldo o cola.

Operaciones esenciales

Una cola de software debe tener al menos las siguientes operaciones:

empujar

Esta operación agrega un nuevo elemento en la parte posterior de la cola. Esta operación se llama oficialmente, Enqueue.

cambio

Esta operación elimina el primer elemento de la cola, y el segundo elemento se convierte en el nuevo primer elemento. Esta operación se llama oficialmente Dequeue. Se llama pop en c++.

Este artículo explica cómo usar la estructura de datos de la cola C ++. Debe conocer los punteros de C ++ y las referencias para comprender el resto de este artículo.

Clase y objetos

Una clase es un conjunto de variables y funciones que funcionan juntas, donde las variables no tienen valores asignados a. Cuando los valores se asignan a las variables, la clase se convierte en un objeto. Diferentes valores dados a la misma clase dan como resultado diferentes objetos; es decir, diferentes objetos son la misma clase con diferentes valores. Se dice que crear un objeto a partir de una clase está instanciando el objeto.

El nombre, cola, es una clase. Un objeto creado a partir de la clase de cola tiene un nombre de programador elegido.

Se necesita una función que pertenece a una clase para instanciar un objeto de la clase. En C ++, esa función tiene el mismo nombre que el nombre de la clase. Los objetos creados (instanciados) de la clase tienen diferentes nombres dados a ellos, por el programador.

Crear un objeto a partir de la clase significa construir el objeto; También significa instanciar.

Un programa C ++ que usa la clase de cola, comienza con las siguientes líneas en la parte superior del archivo:

#incluir
#incluir
usando el espacio de nombres STD;

La primera línea es para entrada/salida. La segunda línea es permitir que el programa use todas las características de la clase de cola. La tercera línea permite que el programa use los nombres en el espacio de nombres estándar.

Sobrecargar una función

Cuando dos o más firmas de funciones diferentes tienen el mismo nombre, se dice que ese nombre está sobrecargado. Cuando se llama a una función, el número y el tipo de argumentos, determine qué función se ejecuta realmente.

Construcción

cola nombre()

La siguiente declaración instancia una cola llamada, que de tipo int int.

cola What;

La cola está vacía. La declaración comienza con la palabra reservada, cola seguida de soportes de ángulo con el tipo de datos. Entonces tienes el nombre del programador para la cola.

Construcción con la lista de inicializador

La siguiente definición muestra cómo crear una cola con la lista de inicializador:

cola que (1.1, 2.2, 3.3, 4.4);

Destruyendo una cola

Para destruir una cola, solo déjalo salir del alcance.

Acceso al elemento de cola

Push (valor)

Una cola es una lista de primera salida. Entonces, cada valor se agrega desde la parte posterior. El siguiente segmento de código crea una cola vacía, después de lo cual se agregan cinco valores de flotación desde la parte posterior:

cola What;
What.empuje (1.1);
What.empuje (2.2);
What.empuje (3.3);
What.empuje (4.4);
What.empuje (5.5);

tamaño () const

Esto devuelve el número de elementos en la cola. El siguiente código ilustra:

cola What;
What.empuje (1.1); What.empuje (2.2); What.empuje (3.3); What.empuje (4.4); What.empuje (5.5);
cout << que.size() << '\n';

La salida es 5.

frente()

Esto devuelve una referencia al primer elemento de la cola, sin eliminar el elemento. La salida del siguiente código es 1.1.

cola What;
What.empuje (1.1); What.empuje (2.2); What.empuje (3.3); What.empuje (4.4); What.empuje (5.5);
cout << que.front() << '\n';

El elemento no se elimina de la cola.

front () const

Cuando la construcción de la cola está precedida por const, la expresión "front () const" se ejecuta en lugar de "front ()". Se usa en el siguiente código, por ejemplo.

cola que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';

Se devuelve una referencia constante. El elemento no se elimina del vector. Los elementos de la cola no se pueden cambiar.

atrás()

Esto devuelve una referencia al último elemento de la cola, sin eliminar el elemento. La salida del siguiente código es 5.5.

cola What;
What.empuje (1.1); What.empuje (2.2); What.empuje (3.3); What.empuje (4.4); What.empuje (5.5);
cout << que.back() << '\n';

Atrás () const

Cuando la construcción de la cola está precedida por const, la expresión "retroceder () const" se ejecuta en lugar de "retroceder ()". Se usa en el siguiente código, por ejemplo.

cola que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.back() << '\n';

Se devuelve una referencia constante. El elemento no se elimina de la cola. Con el constante constante para la construcción de la cola, los elementos en la cola no se pueden cambiar.

Capacidad de cola

tamaño () const

- véase más arriba

vacío () const

Esto devuelve 1 para verdadero si no hay elementos en la cola, o 0 para falso si la cola está vacía. El siguiente código ilustra esto:

cola Que1 (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que1.empty() << '\n';
cola Que2;
cout << que2.empty() << '\n';

La salida es:

0
1

Modificadores de cola

estallido()

Una cola es FIFO, por lo que cualquier elemento que debe eliminarse debe retirarse de la parte superior (cabeza) de la cola. Esta función miembro elimina el primer elemento sin devolverlo. El siguiente código ilustra esto:

cola que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';
What.estallido();
cout << que.size() << '\n';

La salida es:

1.1
4

a.intercambio (b)

Se pueden intercambiar dos colas, como se ilustra en este segmento de código:

cola Que1 (1.1, 2.2, 3.3, 4.4, 5.5);
cola Que2 (10, 20);
que1.intercambio (que2);
cout << "First element and size of que1:"
<< que1.front() <<", "<< que1.size() << '\n';
cout << "First element and size of que2 "<<
que2.frente() <<", "<< que2.size() << '\n';

La salida es:

Primer elemento y tamaño de Que1: 10, 2

Primer elemento y tamaño de Que2: 1.15

Tenga en cuenta que la longitud de una cola aumenta si es necesario. Además, los valores que no tenían reemplazos se reemplazan por algún valor predeterminado. Los tipos de datos deben ser del mismo tipo.

Operadores de igualdad y relacionales para colas

Para caracteres ordinarios en C ++, en orden ascendente, los números vienen antes de las letras mayúsculas, que vienen antes de las letras minúsculas. El personaje espacial viene antes de cero y todos ellos.

Operadores de igualdad

Devuelve 1 para verdadero y 0 para falso.

El operador ==

Devuelve 1 si las dos colas tienen el mismo tamaño y los elementos correspondientes son iguales; de lo contrario devuelve 0. Ejemplo:

cola Que1 ("Kind", "algo más");
cola Que2 ("Wicked");
int num = que1 == que2;
cout << num << '\n';

La salida es: 0.

El != Operador

- opuesto a lo anterior. Ejemplo:

cola Que1 ("Kind", "algo más");
cola Que2 ("Wicked");
int num = que1 != Que2;
cout << num << '\n';

La salida es: 1.

Operadores relacionales

Devuelve 1 para verdadero y 0 para falso.

El < Operator

Devuelve 1 Si la primera cola es el subconjunto inicial de la segunda cola, con los elementos de las dos porciones iguales son las mismas y en el mismo orden. Si ambas colas son del mismo tamaño o tamaños diferentes, y se mueven de izquierda a derecha, se encuentra un elemento en la primera cola que es menor que el elemento correspondiente en la segunda cola, entonces 1 aún se devuelve 1. De lo contrario 0 se devuelve 0. Ejemplo:

cola Que1 ("Kind", "algo más");
cola Que2 ("Wicked");
int num = que1 < que2;
cout << num << '\n';

La salida es 1. < does not include the case when the size and order are the same.

El> operador

- opuesto a lo anterior. Ejemplo:

cola Que1 ("Kind", "algo más");
cola Que2 ("Wicked");
int num = que1> que2;
cout << num << '\n';

Salida: 0

El <= Operator

- igual que < but includes the case when the size and order are the same. Example:

cola Que1 ("Kind", "algo más");
cola Que2 ("Wicked");
int num = que1 <= que2;
cout << num << '\n';

Salida: 1

El operador> =

- opuesto a lo anterior. Ejemplo:

cola Que1 ("Kind", "algo más");
cola Que2 ("Wicked");
int num = que1> = que2;
cout << num << '\n';

Salida: 0

Clase y sus objetos instanciados

Un valor es para un tipo de datos, ya que un objeto instanciado es para una clase. La construcción de la cola también puede aceptar una clase como tipo de datos. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
Clase THECLA

público:
int num;
Charch estático;
vacío func (char cha, const char *str)
cout << "There are " << num << " books worth " <<
cha << str << " in the store." << '\n';

Diversión nula estática (Char Ch)
if (ch == 'a')
cout << "Official static member function" << '\n';

;
int main ()
Thecla obj1; Thecla obj2; Thecla obj3; Thecla obj4; THECLA OBJ5;
cola What;
What.empuje (obj1);
What.empuje (obj2);
What.empuje (obj3);
What.empuje (obj4);
What.empuje (obj5);
cout << que.size() << '\n';
regresar 0;

La salida es 5.

Lista enlazada

La lista de colas se llama técnicamente una lista vinculada. Hay dos tipos de listas vinculadas para la cola: lista vinculada individualmente y lista doblemente vinculada.

Un elemento de lista vinculado individualmente puede ser implementado por una estructura de dos miembros. Un miembro posee un puntero al siguiente elemento y el otro miembro contiene el dato (singular para los datos).

Un elemento de lista doblemente vinculado puede ser implementado por una estructura de tres miembros. El miembro del medio posee el dato, mientras que el primer y el tercer miembro tienen consejos de sus elementos adyacentes.

Aplicaciones de la cola

La cola es una estructura de datos en primer lugar. Hay situaciones en la computación cuando llegan los datos en forma de cola, lo que requiere un comportamiento en primer lugar.

Compartir recursos informáticos

Un recurso en una computadora es cualquier componente físico o virtual de disponibilidad limitada. Incluyen la CPU, la tarjeta de video, el disco duro y la memoria. Compartir tal recurso necesita una cola.

Manejo de interrupciones

Los periféricos de la computadora deben interrumpir la computadora de vez en cuando. Las interrupciones deben manejarse de la misma manera que llegaron. Esto necesita una cola.

Administrar información.

La cola se puede usar, por ejemplo, para administrar archivos de aplicación para un trabajo, si los archivos se almacenan en la computadora.

Conclusión

Una cola es una estructura de datos de la lista, que es una lista vinculada individualmente o una lista doblemente vinculada. Como regla, el primer elemento que ingresa a la lista es el primer elemento que. C ++ proporciona una estructura de datos de cola en su biblioteca estándar. Las categorías de funciones y operadores de miembros disponibles para esta estructura son la construcción de colas, el acceso al elemento de cola, la capacidad de cola, los modificadores de cola y los operadores sobrecargados de cola.

Cualquier estructura de datos de cola debe proporcionar al menos las funciones de miembro push () y pop (). push () significa, enviar un nuevo elemento a la parte posterior de la cola; y pop () significa, eliminar el elemento que está en la parte delantera de la cola. Desafortunadamente, en C ++, estas funciones no devuelven el valor empujado o aparecido. Entonces, para conocer el último elemento antes de presionar, la función adicional de retroceso () debe usarse; Y para conocer el primer elemento antes de aparecer, la función extra () se debe usar.

Un valor es para un tipo de datos, ya que un objeto instanciado es para una clase. Por lo tanto, una clase en particular se puede usar como tipo de datos para la instanciación de la plantilla de cola. Diferentes objetos para la clase se vuelven como diferentes valores para la clase.

La cola tiene aplicaciones en la computadora. Se puede usar, por ejemplo, para administrar archivos de aplicación para un trabajo, si los archivos se almacenan en la computadora.