Una pila en la informática es una estructura de datos de la lista de Last-In_First-Out (LIFO). Esto significa agregar un nuevo elemento, el elemento se empuja al frente de la lista; y para eliminar un elemento, el elemento aparece desde el frente de la lista. El elemento frontal también se puede mirar, lo que significa leerlo pero no eliminarlo.
El nombre "deque" es la forma corta para "cola de doble extremo", pronunciado "mazo". El Deque es una estructura de datos de la lista FIFO y una LIFO en Java. Bueno, también en Java, el Deque es una interfaz desde la cual se pueden implementar clases. Java ya tiene las siguientes clases implementadas: Arraydeque, concurrentLinkeddeque, LinkedBlockingdeque, LinkedList. La clase Arraydeque ha sido elegida para ser estudiada en este artículo.
Los siguientes son Java Arraydeque Métodos correspondientes para la cola:
Cola | Arraydeque |
---|---|
enoue | agregar |
desembolsar | eliminar |
ojeada | ojeada |
Los siguientes son los métodos correspondientes de Java Arraydeque para la pila:
Pila | Arraydeque |
---|---|
empujar | empujar |
estallido | estallido |
ojeada | ojeada |
Nota: El método PEEK () es el mismo para ambos comportamientos. Además, eliminar () y pop () son muy similares; se explican a continuación.
Construyendo un Arraydeque
La clase Arraydeque está en el Java.utilizar.* Paquete, que debe importarse. Tiene tres constructores, dos de los cuales se explican aquí.
Public Arraydeque ()
Esto crea un deque vacío, como muestra el siguiente segmento de código:
Se agregaron cinco elementos. El nombre del deque aquí es, dq.
Public Arraydeque (Colección C)
Este constructor sobrecargado crea un deque de otro deque. El siguiente segmento de código ilustra esto:
DQ1 ha sido creado a partir de DQ.
Métodos de la clase Arraydeque
ADD PÚBLICO BOOLEAN (E E)
Este es el equivalente de Enqueue. Agrega un elemento al final del deque. El siguiente programa ilustra esto:
Public int size ()
Esto devuelve el tamaño (longitud) del deque. El siguiente programa ilustra esto:
La salida es 5.
Public e remove ()
Este es el equivalente de Doceue. Elimina un elemento del frente de la lista. El siguiente programa ilustra esto:
La salida es:
F G H I Jmostrando un comportamiento de FIFO.
Public E Peek ()
Esto lee el elemento en la parte delantera del deque sin quitarlo. El siguiente programa ilustra esto:
La salida es:
F f f f findicando que no se ha eliminado nada, y el primer elemento acaba de leer cinco veces.
PUBLICACIÓN PÚBLICA PUSH (E E)
Esto agrega un elemento al frente del deque. El siguiente programa ilustra esto:
La salida es:
J I H G Fmostrando un comportamiento de Lifo.
Public E Pop ()
Esto elimina y devuelve el primer elemento del deque. El siguiente programa ilustra esto:
La salida es:
J I H G Fmostrando un comportamiento de Lifo.
Public Void foreach (acción del consumidor)
Este método foreach se puede usar para acceder a cada elemento en el deque. El siguiente programa lo usa para imprimir todos los elementos en el Deque:
La salida es:
J I H G FEl elemento es una variable ficticia que representa cada elemento en el deque. Tenga en cuenta la forma en que se ha utilizado. Tenga en cuenta el uso del operador de flecha, -> . La iteración se realizó en orden inverso.
Iterador iterador ()
Esto devuelve un iterador que se puede usar para eliminar un elemento dentro del deque. Sin embargo, esta acción tarda más que eliminar un elemento en la parte delantera o posterior del deque. La siguiente declaración devolvería al iterador para los caracteres de un deque.
donde iter es el objeto iterador, y dq es el objeto deque.
El iterador tiene los siguientes métodos:
Boolean Hasnext (): Devuelve verdadero si la iteración tiene más elementos.
E Next (): Devuelve el siguiente elemento en la iteración.
Void predeterminado remove (): elimina de la lista, el último elemento devuelto por este iterador (siguiente).
Tenga en cuenta que no tiene un método para insertar un elemento dentro del Deque.
Eliminar un elemento dentro de Deque
El siguiente programa elimina 'H' en el medio de la lista de Deque: F, G, H, I, J:
importar java.utilizar.*;La salida es:
J I G FTenga en cuenta que Next () tuvo que llamarse tres veces.
Conclusión
En Java, el deque es una colección FIFO y LIFO. Deque en Java es en realidad una interfaz desde la cual se debe implementar una clase antes de que se pueda usar el Deque. Afortunadamente, Java ya tiene las siguientes clases implementadas de Deque: Arraydeque, concurrentLinkeddeque, LinkedBlockingdeque, LinkedList. La operación de Arraydeque se ha explicado arriba.