| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- public class Queue<T> {
- private static class Node<T> {
- T data;
- Node<T> next;
- Node(T data) {
- this.data = data;
- this.next = null;
- }
- }
- private Node<T> front; // Frente de la cola
- private Node<T> rear; // Final de la cola
- private int size; // Tamaño de la cola
- public Queue() {
- front = null;
- rear = null;
- size = 0;
- }
- // Método para agregar un elemento a la cola
- public void enqueue(T item) {
- Node<T> newNode = new Node<>(item);
- if (isEmpty()) {
- front = newNode;
- rear = newNode;
- } else {
- rear.next = newNode;
- rear = newNode;
- }
- size++;
- }
- // Método para eliminar y devolver el elemento en el frente de la cola
- public T dequeue() {
- if (isEmpty()) {
- throw new IllegalStateException("La cola está vacía");
- }
- T data = front.data;
- front = front.next;
- if (front == null) {
- rear = null;
- }
- 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();
- }
- public static void main(String[] args) {
- Queue<Integer> queue = new Queue<>();
- queue.enqueue(1);
- queue.enqueue(2);
- queue.enqueue(3);
- System.out.print("Elementos en la cola: ");
- queue.printQueue();
- System.out.println("Desencolando: " + queue.dequeue());
- System.out.print("Elementos en la cola después de desencolar: ");
- queue.printQueue();
- System.out.println("Tamaño de la cola: " + queue.size());
- }
- }
|