public class Cola {
    // Propiedades de la estructura tipo cola
    private int inicio;
    private int fin;
    private int capacidad;
    private String[] elementos; // Arreglo de cadenas que simula la estructura tipo cola

    // Constructor de la clase que permite crear e inicializar las propiedades
    public Cola(int capacidad) {
        this.capacidad = capacidad;
        this.elementos = new String[capacidad];
        this.inicio = 0;
        this.fin = 0;
    }

    // Properties get y set para cada propiedad del objeto

    // Obtiene el índice inicio
    public int getInicio() {
        return this.inicio;
    }

    // Modifica el índice inicio con un nuevo valor pasado como parámetro
    public void setInicio(int inicio) {
        this.inicio = inicio;
    }

    // Obtiene el índice fin
    public int getFin() {
        return this.fin;
    }

    // Modifica el índice fin con un nuevo valor pasado como parámetro
    public void setFin(int fin) {
        this.fin = fin;
    }

    // Obtiene la capacidad del arreglo (tamaño de la cola)
    public int getCapacidad() {
        return this.capacidad;
    }

    // Obtiene todo el arreglo con los elementos actuales de la cola
    public String[] getElementos() {
        return this.elementos;
    }

    // Métodos adicionales de la Cola

    public boolean estaVacia() {
        return this.inicio == this.fin;
    }

    public boolean estaLlena() {
        return this.fin == this.capacidad;
    }

    // Método para meter un elemento a la cola (Enqueue)
    public void insertar(String elemento) {
        if (estaLlena()) {
            System.out.println("¡Desbordamiento! La cola está llena.");
        } else {
            elementos[fin] = elemento;
            fin++;
            System.out.println("Elemento insertado correctamente.");
        }
    }

    // Método para sacar un elemento de la cola (Dequeue)
    public String eliminar() {
        if (estaVacia()) {
            System.out.println("¡Subdesbordamiento! La cola está vacía.");
            return null;
        } else {
            String elementoEliminado = elementos[inicio];
            // Desplazamiento de elementos hacia adelante en la cola lineal
            for (int i = inicio; i < fin - 1; i++) {
                elementos[i] = elementos[i + 1];
            }
            elementos[fin - 1] = null;
            fin--;
            System.out.println("Elemento eliminado: " + elementoEliminado);
            return elementoEliminado;
        }
    }

    // Método para imprimir los elementos de la cola
    public void imprimir() {
        if (estaVacia()) {
            System.out.println("La cola está vacía. No hay elementos que mostrar.");
        } else {
            System.out.println("\n--- Elementos de la Cola ---");
            for (int i = inicio; i < fin; i++) {
                System.out.println("Posición [" + i + "] -> " + elementos[i]);
            }
            System.out.println("----------------------------\n");
        }
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: