Java 实现队列数据结构
在本文中,我们将了解如何实现队列数据结构。队列是一种线性结构,按照特定的顺序执行操作。顺序是先进先出(FIFO)。
下面是一个相同的演示-
假设我们的输入是 –
Input Queue: [150, 300, 450, 600]
所期望的输出是 −
After removing an element, the elements of the queue are: [300, 450, 600]
步骤
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
示例1
在这里,我们使用内置的定义好的函数来执行所有的栈操作。
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);
}
}
输出
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]
示例2
在这里,我们使用用户定义的函数来执行所有的堆栈操作。
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();
}
}
输出
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