| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- public class Queue<T> {
- private Node<T> front; // Puntero al frente de la cola
- private Node<T> rear; // Puntero al final de la cola
- private int size; // Tamaño de la cola
- // Clase interna para el nodo
- private static class Node<T> {
- T data;
- Node<T> next;
- Node(T data) {
- this.data = data;
- this.next = null;
- }
- }
- // Constructor para la cola
- public Queue() {
- front = rear = null;
- size = 0;
- }
- // Método para agregar un elemento a la cola
- public void enqueue(T data) {
- Node<T> newNode = new Node<>(data);
- if (isEmpty()) {
- front = rear = newNode;
- } else {
- rear.next = newNode;
- rear = newNode;
- }
- size++;
- }
- // Método para eliminar un elemento de la cola
- public T dequeue() {
- if (isEmpty()) {
- throw new IllegalStateException("La cola está vacía");
- }
- T data = front.data;
- if (front == rear) {
- front = rear = null;
- } else {
- front = front.next;
- }
- size--;
- return data;
- }
- // Método para verificar si la cola está vacía
- public boolean isEmpty() {
- return front == null;
- }
- // Método para obtener el tamaño de la cola
- public int size() {
- return size;
- }
- // Método para imprimir los elementos de la cola
- public void printQueue() {
- Node<T> current = front;
- while (current != null) {
- System.out.print(current.data + " ");
- current = current.next;
- }
- System.out.println();
- }
- // Método main para probar la implementación de la cola
- public static void main(String[] args) {
- Queue<Integer> queue = new Queue<>();
- queue.enqueue(1);
- queue.enqueue(2);
- queue.enqueue(3);
- System.out.println("Tamaño de la cola: " + queue.size());
- queue.printQueue();
- System.out.println("Desencolando: " + queue.dequeue());
- System.out.println("Desencolando: " + queue.dequeue());
- System.out.println("Tamaño de la cola después de desencolar dos elementos: " + queue.size());
- queue.printQueue();
- }
- }
|