java数据结构queue方法_Java 程序实现队列(Queue)数据结构

Java 程序实现队列(Queue)数据结构

在这个实例中,我们将学习用Java实现队列数据结构。

要了解此示例,请确保您首先访问以下教程,

示例1:实现堆栈的Java程序

示例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("Queue is full");

}

else {

if (front == -1) {

//标记 front 表示队列的第一个元素

front = 0;

}

rear++;

//在后面插入元素

items[rear] = element;

System.out.println("Insert " + element);

}

}

//从队列中删除元素

int deQueue() {

int element;

//如果队列为空

if (isEmpty()) {

System.out.println("Queue is empty");

return (-1);

}

else {

//从队列前面删除元素

element = items[front];

//如果队列中只有一个元素

if (front >= rear) {

front = -1;

rear = -1;

}

else {

//将下一个元素标记为 front

front++;

}

System.out.println( element + " Deleted");

return (element);

}

}

//显示队列元素

void display() {

int i;

if (isEmpty()) {

System.out.println("Empty Queue");

}

else {

//显示队列的front

System.out.println("\nFront index-> " + front);

//显示队列的元素

System.out.println("Items -> ");

for (i = front; i <= rear; i++)

System.out.print(items[i] + "  ");

// 显示队列的尾部

System.out.println("\nRear index-> " + rear);

}

}

public static void main(String[] args) {

//创建一个Queue类的对象

Queue q = new Queue();

//尝试从队列中删除元素

// 当前队列为空

// 因此无法删除

q.deQueue();

// 将元素插入队列

for(int i = 1; i 

q.enQueue(i);

}

// 无法将第6个元素添加到队列中,因为队列已满

q.enQueue(6);

q.display();

// deQueue删除首先输入的元素,例如:1

q.deQueue();

//现在我们只有4个元素

q.display();

}

}

输出结果Queue is empty

Insert 1

Insert 2

Insert 3

Insert 4

Insert 5

Queue is full

Front index-> 0

Items ->

1  2  3  4  5

Rear index-> 4

1 Deleted

Front index-> 1

Items ->

2  3  4  5

Rear index-> 4

在上面的示例中,我们已经用Java实现了队列数据结构。

示例2:使用Queue接口实现堆栈

Java提供了一个可用于实现队列的内置接口 Queue 。

示例import java.util.Queue;

import java.util.LinkedList;

class Main {

public static void main(String[] args) {

//使用LinkedList类创建队列

Queue numbers = new LinkedList<>();

// enqueue

//在队列尾部插入元素

numbers.offer(1);

numbers.offer(2);

numbers.offer(3);

System.out.println("Queue: " + numbers);

// dequeue

//从队列前面删除元素

int removedNumber = numbers.poll();

System.out.println("删除的元素: " + removedNumber);

System.out.println("删除后排队: " + numbers);

}

}

输出结果Queue: [1, 2, 3]

删除的元素: 1

删除后排队: [2, 3]

在上面的示例中,我们使用了Java的Queue接口以实现队列。在这里,我们使用了LinkedList实现Queue接口的类。Numbers.offer() - 将元素插入到队列的末尾

Numbers.poll() - 从队列的最前面删除一个元素

注意,我们在创建队列时使用了尖括号。它表示队列是泛型类型。要了解有关泛型的更多信息,请访问Java 泛型。

我们还可以使用其他接口和类代替Queue 和 LinkedList。例如,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值