English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

control de flujo Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (Cola)

Java Map Colección

Java Set Colección

Java Entrada Salida (I/O)

Java Reader/Writer

Java Otros temas

Java Program Implementation of Queue (Queue) Data Structure

    Completo de ejemplos de Java

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,

Ejemplo1:实现堆栈的Java程序

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.

Ejemplo2: Implementar pila usando la interfaz Queue

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,

Completo de ejemplos de Java