Програма Java для реалізації структури даних черги

У цьому прикладі ми навчимося реалізовувати структуру даних черги в Java.

Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:

  • Інтерфейс черги Java
  • Java Generics

Приклад 1: Програма Java для реалізації 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(); ) )

Вихідні дані

 Черга порожня Вставка 1 Вставка 2 Вставка 3 Вставка 4 Вставка 5 Черга повна Передній покажчик-> 0 елементів -> 1 2 3 4 5 Задній покажчик-> 4 1 Видалений передній покажчик-> 1 Предмет -> 2 3 4 5 Задній покажчик -> 4

У наведеному вище прикладі ми реалізували структуру даних черги в Java.

Щоб дізнатись про роботу з чергою, відвідайте Структура даних черги.

Приклад 2: Впровадити стек за допомогою інтерфейсу черги

Java надає вбудований Queueінтерфейс, який можна використовувати для реалізації черги.

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

Вихідні дані

 Черга: (1, 2, 3) Видалений елемент: 1 Черга після видалення: (2, 3)

У наведеному вище прикладі ми використовували Queueінтерфейс для реалізації черги в Java. Тут ми використали LinkedListклас, який реалізує Queueінтерфейс.

  • numbers.offer () - вставити елементи в задній частині черги
  • numbers.poll () - видалення елемента з передньої частини черги

Зверніть увагу, ми використовували кутові дужки під час створення черги. Це означає, що черга має загальний тип.

Ми також можемо використовувати інші інтерфейси та класи замість Queueта LinkedList. Наприклад,

  • Інтерфейс Deque
  • Клас ArrayDeque
  • Клас PriorityQueue

Цікаві статті...