Trong bài này, chúng ta sẽ hiểu cách triển khai cấu trúc dữ liệu hàng đợi. Hàng đợi là một cấu trúc cụ thể tuân theo một thứ tự cụ thể trong đó các hoạt động được thực hiện. Đơn hàng xuất trước (FIFO).
Dưới đây là một minh chứng về điều tương tự -
Giả sử đầu vào của chúng tôi là -
Input Queue: [150, 300, 450, 600]
Đầu ra mong muốn sẽ là -
After removing an element, the elements of the queue are: [300, 450, 600]
Thuật toán
Step 1 - START Step 2 - Declare namely Step 3 - Add elements to it using the ‘offer’ method. Step 4 - Display the queue content Step 5 - Use the ‘poll’ method to delete the element from the queue. Step 6 - Display the elements of the queue after calling the ‘poll’ method. Step 7 - Display the result Step 8 - Stop
Ví dụ 1
Ở đây, chúng tôi sử dụng các hàm được xác định được tích hợp sẵn để thực thi tất cả các hoạt động ngăn xếp.
import java.util.Queue; import java.util.LinkedList; public class Demo { public static void main(String[] args) { System.out.println("The required packages have been imported"); Queue<Integer> input_queue = new LinkedList<>(); input_queue.offer(150); input_queue.offer(300); input_queue.offer(450); input_queue.offer(600); System.out.println("The queue is defined as: " + input_queue); int removedNumber = input_queue.poll(); System.out.println("After removing an element, the elements of the queue are: " +input_queue); } }
Đầu ra
The required packages have been imported The queue is defined as: [150, 300, 450, 600] After removing an element, the elements of the queue are: [300, 450, 600]
Ví dụ 2
Ở đây, chúng tôi sử dụng các hàm do người dùng xác định để thực thi tất cả các hoạt động ngăn xếp.
public class Queue { int SIZE = 5; int items[] = new int[SIZE]; int front, rear; Queue() { front = -1; rear = -1; } boolean isFull() { if (front == 0 && rear == SIZE - 1) { return true; } return false; } boolean isEmpty() { if (front == -1) return true; else return false; } void enQueue(int element) { if (isFull()) { System.out.println("\nThe queue is full"); } else { if (front == -1) { front = 0; } rear++; items[rear] = element; System.out.println("\nThe element " + element + " is inserted"); } } int deQueue() { int element; if (isEmpty()) { System.out.println("\nThe queue is empty"); return (-1); } else { element = items[front]; if (front >= rear) { front = -1; rear = -1; } else { front++; } System.out.println("\nThe element " +element + " is deleted"); return (element); } } void display() { int i; if (isEmpty()) { System.out.println("The queue is empty "); } else { System.out.println("\nThe elements of the queue are: "); for (i = front; i <= rear; i++) System.out.print(items[i] + " "); } } public static void main(String[] args) { Queue input_queue = new Queue(); for(int i = 1; i < 6; i ++) { input_queue.enQueue(i * 100); } System.out.println("The queue is defined as: " + input_queue); input_queue.enQueue(6); input_queue.display(); input_queue.deQueue(); input_queue.display(); } }
Đầu ra
The element 100 is inserted The element 200 is inserted The element 300 is inserted The element 400 is inserted The element 500 is inserted The queue is defined as: Queue@2a139a55 The queue is full The elements of the queue are: 100 200 300 400 500 The element 100 is deleted The elements of the queue are: 200 300 400 500