Los elementos a menudo se agregan desde la parte posterior y se eliminan del frente en una cola normal. En contraste, podemos agregar y eliminar los componentes de la parte delantera y trasera de un deque. La implementación de un deque en C ++ se puede hacer utilizando una matriz o una lista vinculada.
A continuación se muestra una lista de la implementación de la matriz de Deque. Utilizamos las matrices circulares para implementarlo porque es una cola de doble extremo. La cola de doble extremo es más rápida y más eficiente que cualquier otra cola cuando se trata de agregar y eliminar los componentes de ambos extremos.
Representación de Deque
Los aspectos que requieren mucho tiempo de hacer varios procesos de Deque incluyen:
Tipos de deque
Echemos ver los tipos relacionados con Deque en C++.
Entrada restringida Deque
La entrada se confina en un extremo pero se permite en los otros dos.
Salida restringida deque
En este deque, la salida está prohibida en un extremo, pero la inserción está permitida en ambos extremos.
Creación de la función de c ++ deque
Primero debemos incluir el archivo de encabezado Deque para generar un deque en c++.
#incluirDespués de importar este archivo, la siguiente sintaxis se puede usar para generar un DEQUE:
# Dee deque-nombre;El tipo de datos que nos gustaría almacenar en el deque está indicado por el tipo de objeto en este caso. Por ejemplo: int, float, string, etc. Deque-Name es un nombre variable para los datos que vamos a usar.
Inicialización de la función de deque
En C ++, la función deque se puede inicializar de las siguientes maneras:
depararAmbos métodos se utilizan para inicializar Deque. En ambos nombres de Deque, "ARR" se inicializa con los valores enteros 1, 3, 7, 0, 5, 8.
Métodos de Deque
Los siguientes son los métodos de Deque:
Estructura de datos Deque
Verifiquemos los detalles de la estructura de datos delque en la siguiente sección:
Procedimientos en un deque
Estos pasos deben seguirse antes de llevar a cabo las operaciones posteriores:
Paso 1: Tome una matriz n-dimensional (deque). En la primera posición, coloque dos punteros y establezca front = -1 y trasero = 0.
Establezca una matriz de Deque y consejos.
Inserción en el frente
Paso 1: Esta acción agrega un componente al frente. Revise la ubicación del frente.
Si el frente es inferior a 5, restablezca el frente a N-1 (último índice).
Paso 2: Reduzca el frente por 1 si es necesario. Ahora, agregue la nueva llave n a la matriz [front]. Supongamos que n = 6.
Inserción en la parte trasera
Paso 1: Esta acción agrega un componente a la rara. Asegúrese de que la matriz no esté llena.
Paso 2: Si la cola está llena, restablezca el valor trasero a 0 (r = 0). De lo contrario, levante lo raro por 1.
Paso 3: En una matriz [trasera], agregue la nueva llave 6.
Retirar del frente
Paso 1: Se elimina un elemento en el frente durante el proceso. Asegúrate de que el deque no esté vacío.
Paso 2: La eliminación no es posible si el deque está vacío (front = -1) (condición de flujo subterráneo). Establezca el front = -1 solamente y el trasero = -1 si el deque consta de un elemento como delantero = trasero. Asigne el valor al frente (frente = 0) si el frente está al final (front = n - 1). Si no, configure el frente a la parte delantera = Frente+1.
Retirar de la parte posterior
Paso 1: Se elimina un elemento al final durante el proceso. Asegúrate de que el deque no esté vacío.
Paso 2: La eliminación no es posible si el deque está vacío (front = -1) (condición de flujo subterráneo). Establezca el frente = -1 y el trasero = -1 si el deque solo tiene un solo elemento (delantero = trasero). De lo contrario, continúe con los siguientes pasos. Movemos hacia la parte delantera, trasera = n - 1 si la parte trasera está en la parte delantera (trasera = 0). Si no, configure el raro = raro-1.
Ejemplo 1: Creación de Deque
En este ejemplo, creamos un deque. Primero incluimos nuestros archivos de encabezado "#include" y #include donde #include ordena al preprocesador que incluya el archivo de encabezado iOStream y deque que contiene todas las funciones del programa.
#incluirDespués de eso, describimos una función de pantalla _deque que se usa para ejecutar los valores de Dque que le asignamos.
Pasando a nuestra función principal, el int main () indica que nuestra función debe devolver un valor entero al final de la ejecución, lo que hacemos devolviendo 0 a la conclusión del programa utilizando una inicialización uniforme "Deque Mydeque 4, 2, 7 , 5,8 ". En este "int" es el tipo de datos de valores que asignamos y Mydeque es el nombre que utilizamos para nuestro deque. Asignamos los valores enteros al deque llamado Mydeque que son 4, 2, 7, 5, 8. Para mostrar nuestro deque, utilizamos el bucle for a un tamaño fijo. Y luego, presionamos el botón Run o F7 para obtener la salida del programa.
Ejemplo 2: Agregar más valores a un deque
En este ejemplo, agregamos más valores a un deque. Después de agregar los archivos de encabezado requeridos para este programa, pasamos a nuestra función principal del tipo de datos enteros "Deque var 0, 1, 2". En este "int" es el tipo de datos de valores que asignamos y "var" es el nombre que utilizamos para nuestro deque. Asignamos los valores enteros al deque llamado "var" que son 0, 1 y 2. Luego, empujamos dos elementos, el elemento 8 en la parte delantera del deque y el elemento 5 al final del deque, usando las funciones push_front () y push_back () del deque. Entonces, el deque resultante que tenemos es 8, 0, 1 y 5.
#incluirUna vez que hayamos terminado con la codificación de este ejemplo, lo compilamos y lo ejecutamos en cualquier compilador. El resultado representa la salida esperada del código anterior.
Ejemplo 3: Actualización de elementos en índices especificados
En este ejemplo, actualizamos los valores en un deque después de incluir nuestros archivos de encabezado "#include" y "#include" para este código ejecutable.
#incluirAhora, vamos hacia nuestra función principal en la que inicializamos por primera vez nuestro deque llamado "var" con los valores 1 y 2. Luego, usamos un bucle for para mostrar los valores de nuestro deque inicializado. Para actualizar los valores de DEQUE, usamos la función AT () (como sabemos, la función AT () se usa para referirse a la posición especificada en el deque) en el índice 0 y 1, asignando nuevos valores a "var". Estos son 3 y 4. Entonces, nuestra Dequeue actualizada es 3 y 4. Después de preparar nuestro código, lo compilamos utilizando cualquier herramienta de compilador. Aquí está el resultado deseado de nuestro código:
Ejemplo 4: Uso de iterador para eliminar los valores
En este ejemplo, usamos los iteradores para acceder a los elementos en el deque. Un objeto que apunta a un elemento dentro de un contenedor se llama iterador.
#incluirSe puede iterarse hacia adelante y hacia atrás usando el deque :: cbegin y deque :: cend, y en ambos sentidos usando el deque :: crbegin y deque :: crend.
Inicialmente, creamos un iterador que puede señalar un deque de enteros llamado "var". Luego, señalamos los siguientes elementos usando el iterador "var_inter". El iterador que el método begin () devuelve apunta al primer elemento. El "Begin () + 1" genera un iterador usando el índice 1 del elemento como punto de partida. Como puede ver, usamos el var.end () - 1 en lugar del var.fin().
Esto se debe a que el método iterador para el método End () se enlaza a un iterador que pasa el último elemento. Para obtener el último elemento, deducimos 1. Usamos el operador de indirección * para obtener el valor de un elemento después de usar el inter_var para apuntarlo.
Operaciones de Deque
Las operaciones fundamentales que se pueden llevar a cabo en Deque son las siguientes:
Conclusión
Deque es la mejor opción porque es más rápido y ayuda al código a funcionar más rápidamente. El Deque funciona mejor para secuencias de registro. Este artículo se basa en la implementación de Deque y sus principales métodos, que nos ayudan a modificar el deque de acuerdo con nuestras necesidades. Nuestro objetivo es explicar el deque y sus métodos, así como con ejemplos de cómo usar el deque y cuándo usarlo. La herramienta que usamos para implementar el código es el compilador C ++. Hicimos un esfuerzo sincero para hacer que este tutorial sea lo más simple y comprensible para usted posible.