English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este ejemplo, aprenderemos a implementar la estructura de datos cola utilizando Java.
Para entender este ejemplo, asegúrese de visitar primero el siguiente tutorial,
public class Queue { int SIZE = 5; int items[] = new int[SIZE]; int frente, rearo; Queue() { frente = -1; rearo = -1; } //Verificar si la cola está llena boolean estaLlena() { if (frente == 0 && rearo == SIZE - 1) { return true; } return false; } //Verificar si la cola está vacía boolean estaVacia() { if (frente == -1) return true; else return false; } //Insertar elemento en la cola void enQueue(int elemento) { //Si la cola está llena if (estaLlena()) { System.out.println("La cola está llena"); } else { if (frente == -1) { //Marcar frente como el primer elemento de la cola frente = 0; } rearo++; //Insertar elemento en la parte posterior items[rearo] = elemento; System.out.println("Insertar " + elemento); } } //Eliminar elemento de la cola int desQueue() { int elemento; //Si la cola está vacía if (estaVacia()) { System.out.println("La cola está vacía"); return (-1); } else { //Eliminar elemento desde la parte delantera de la cola elemento = items[frente]; //Si la cola tiene solo un elemento if (frente >= rearo) { frente = -1; rearo = -1; } else { //Marcar el siguiente elemento como frente frente++; } System.out.println(elemento + "Eliminado"); return (elemento); } } //Mostrar elementos de la cola void mostrar() { int i; if (estaVacia()) { System.out.println("Cola vacía"); } else { //Mostrar el extremo frontal System.out.println("\nÍndice frontal-> " + front); //Mostrar los elementos de la cola System.out.println("Elementos -> "); for (i = front; i <= rear; i++) System.out.print(items[i] + " "); // Mostrar el extremo trasero de la cola System.out.println("\nÍndice trasero-> " + rear); } } public static void main(String[] args) { //Crear un objeto de la clase Queue Queue q = new Queue(); //Intentar eliminar un elemento de la cola // La cola actual está vacía // Por lo tanto, no se puede eliminar q.deQueue(); // Insertar elemento en la cola for(int i = 1; i < 6; i ++) { q.enQueue(i); } // No se puede agregar el6elementos no se pueden agregar a la cola porque está llena q.enQueue(6); q.display(); // deQueue elimina el elemento que se introdujo primero, por ejemplo:1 q.deQueue(); //Ahora solo tenemos4elementos q.display(); } }
Resultados de salida
La cola está vacía Insertar 1 Insertar 2 Insertar 3 Insertar 4 Insertar 5 La cola está llena Índice frontal-> 0 Elementos -> 1 2 3 4 5 Índice trasero-> 4 1 Eliminado Índice frontal-> 1 Elementos -> 2 3 4 5 Índice trasero-> 4
En el ejemplo anterior, ya hemos implementado la estructura de datos de cola en Java.
Java proporciona una interfaz integrada Queue que se puede usar para implementar colas.
import java.util.Queue; import java.util.LinkedList; class Main { public static void main(String[] args) { //Crear cola usando la clase LinkedList Queue<Integer> numbers = new LinkedList<>(); // enqueue //Insertar elemento en la parte trasera de la cola numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Cola: "); + numbers); // dequeue //Eliminar elemento desde la parte delantera de la cola int removedNumber = numbers.poll(); System.out.println("Eliminado: "); + removedNumber); System.out.println("Cola después de eliminar: ") + numbers); } }
Resultados de salida
Cola: [1, 2, 3] Elemento eliminado: 1 Cola después de eliminar: [2, 3]
En el ejemplo anterior, usamos la interfaz Queue de Java para implementar la cola. Aquí, usamos la clase LinkedList para implementar la interfaz Queue.
Numbers.offer() - Insertar un elemento al final de la cola
Numbers.poll() - Eliminar un elemento del principio de la cola
Atención, cuando creamos la cola usamos corchetes <Integer>. Esto indica que la cola es de tipo genérico. Para obtener más información sobre los tipos genéricos, visiteJava 泛型.
También podemos usar otros interfaces y clases para reemplazar Queue y LinkedList. Por ejemplo,