Chương trình Java để triển khai cấu trúc dữ liệu hàng đợi

Trong ví dụ này, chúng ta sẽ học cách triển khai cấu trúc dữ liệu hàng đợi trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Giao diện hàng đợi Java
  • Java Generics

Ví dụ 1: Chương trình Java để triển khai 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(); ) )

Đầu ra

 Hàng đợi trống Chèn 1 Chèn 2 Chèn 3 Chèn 4 Chèn 5 Hàng đợi đã đầy Chỉ mục phía trước-> 0 Mục -> 1 2 3 4 5 Chỉ mục phía sau-> 4 1 Đã xóa Chỉ mục phía trước-> 1 Mục -> 2 3 4 5 Chỉ mục phía sau -> 4

Trong ví dụ trên, chúng ta đã triển khai cấu trúc dữ liệu hàng đợi trong Java.

Để tìm hiểu cách làm việc của hàng đợi, hãy truy cập Cấu trúc dữ liệu hàng đợi.

Ví dụ 2: Triển khai ngăn xếp bằng giao diện Hàng đợi

Java cung cấp một Queuegiao diện được xây dựng có thể được sử dụng để triển khai hàng đợi.

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

Đầu ra

 Hàng đợi: (1, 2, 3) Phần tử đã xóa: 1 Hàng đợi sau khi xóa: (2, 3)

Trong ví dụ trên, chúng ta đã sử dụng Queuegiao diện để triển khai hàng đợi trong Java. Ở đây, chúng tôi đã sử dụng LinkedListlớp triển khai Queuegiao diện.

  • number.offer () - chèn các phần tử vào phía sau hàng đợi
  • number.poll () - xóa một phần tử khỏi hàng đợi

Lưu ý, chúng tôi đã sử dụng dấu ngoặc nhọn trong khi tạo hàng đợi. Nó thể hiện rằng hàng đợi thuộc loại chung.

Chúng ta cũng có thể sử dụng các giao diện và lớp khác thay vì QueueLinkedList. Ví dụ,

  • Giao diện Deque
  • Lớp ArrayDeque
  • Lớp PriorityQueue

thú vị bài viết...