En este ejemplo, aprenderemos a implementar la estructura de datos de la cola en Java.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:
- Interfaz de cola de Java
- Genéricos de Java
Ejemplo 1: programa Java para implementar Stack
public class Queue ( int SIZE = 5; int items() = new int(SIZE); int front, rear; Queue() ( front = -1; rear = -1; ) // check if the queue is full boolean isFull() ( if (front == 0 && rear == SIZE - 1) ( return true; ) return false; ) // check if the queue is empty boolean isEmpty() ( if (front == -1) return true; else return false; ) // insert elements to the queue void enQueue(int element) ( // if queue is full if (isFull()) ( System.out.println("Queue is full"); ) else ( if (front == -1) ( // mark front denote first element of queue front = 0; ) rear++; // insert element at the rear items(rear) = element; System.out.println("Insert " + element); ) ) // delete element from the queue int deQueue() ( int element; // if queue is empty if (isEmpty()) ( System.out.println("Queue is empty"); return (-1); ) else ( // remove element from the front of queue element = items(front); // if the queue has only one element if (front>= rear) ( front = -1; rear = -1; ) else ( // mark next element as the front front++; ) System.out.println( element + " Deleted"); return (element); ) ) // display element of the queue void display() ( int i; if (isEmpty()) ( System.out.println("Empty Queue"); ) else ( // display the front of the queue System.out.println("Front index-> " + front); // display element of the queue System.out.println("Items -> "); for (i = front; i " + rear); ) ) public static void main(String() args) ( // create an object of Queue class Queue q = new Queue(); // try to delete element from the queue // currently queue is empty // so deletion is not possible q.deQueue(); // insert elements to the queue for(int i = 1; i < 6; i ++) ( q.enQueue(i); ) // 6th element can't be added to queue because queue is full q.enQueue(6); q.display(); // deQueue removes element entered first i.e. 1 q.deQueue(); // Now we have just 4 elements q.display(); ) )
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 posterior-> 4 1 Eliminado Índice frontal-> 1 Elementos -> 2 3 4 5 Índice posterior -> 4
En el ejemplo anterior, hemos implementado la estructura de datos de la cola en Java.
Para conocer el funcionamiento de la cola, visite Estructura de datos de la cola.
Ejemplo 2: implementar la pila mediante la interfaz de cola
Java proporciona una Queue
interfaz construida que se puede utilizar para implementar una cola.
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // enqueue // insert element at the rear of the queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // dequeue // delete element from the front of the queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Queue after deletion: " + numbers); ) )
Salida
Cola: (1, 2, 3) Elemento eliminado: 1 Cola después de la eliminación: (2, 3)
En el ejemplo anterior, hemos utilizado la Queue
interfaz para implementar la cola en Java. Aquí, hemos utilizado la LinkedList
clase que implementa la Queue
interfaz.
- numbers.offer () : inserta elementos al final de la cola
- numeros.poll () : elimina un elemento del principio de la cola
Observe que hemos utilizado los corchetes angulares al crear la cola. Representa que la cola es de tipo genérico.
También podemos usar otras interfaces y clases en lugar de Queue
y LinkedList
. Por ejemplo,
- Interfaz Deque
- Clase ArrayDeque
- PriorityQueue (clase)