Programme Java pour implémenter la structure de données de la file d'attente

Dans cet exemple, nous allons apprendre à implémenter la structure de données de file d'attente en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

  • Interface de file d'attente Java
  • Génériques Java

Exemple 1: programme Java pour implémenter 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(); ) )

Production

 La file d'attente est vide Insérer 1 Insérer 2 Insérer 3 Insérer 4 Insérer 5 La file d'attente est pleine Index avant -> 0 Éléments -> 1 2 3 4 5 Index arrière-> 4 1 Supprimé Index avant-> 1 Éléments -> 2 3 4 5 Index arrière -> 4

Dans l'exemple ci-dessus, nous avons implémenté la structure de données de file d'attente en Java.

Pour en savoir plus sur l'utilisation de la file d'attente, consultez la section Structure des données de la file d'attente.

Exemple 2: implémenter la pile à l'aide de l'interface de file d'attente

Java fournit une Queueinterface intégrée qui peut être utilisée pour implémenter une file d'attente.

 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); ) )

Production

 File d'attente: (1, 2, 3) Élément supprimé: 1 File d'attente après suppression: (2, 3)

Dans l'exemple ci-dessus, nous avons utilisé l' Queueinterface pour implémenter la file d'attente en Java. Ici, nous avons utilisé la LinkedListclasse qui implémente l' Queueinterface.

  • numbers.offer () - insère des éléments à l'arrière de la file d'attente
  • numbers.poll () - supprime un élément du début de la file d'attente

Remarquez, nous avons utilisé les chevrons lors de la création de la file d'attente. Cela signifie que la file d'attente est de type générique.

Nous pouvons également utiliser d'autres interfaces et classes au lieu de Queueet LinkedList. Par exemple,

  • Interface Deque
  • Classe ArrayDeque
  • Classe PriorityQueue

Articles intéressants...