编写Java代码实现链队列 ?
参考答案:
链队列(也称为链表队列)是一种特殊类型的队列,它使用链表作为底层数据结构。链队列通常包括两个主要部分:一个头(front)指针和一个尾(rear)指针。头指针指向队列的第一个元素,尾指针指向队列的最后一个元素。
以下是一个简单的Java实现链队列的示例:
public class Node {
int data;
Node next;
Node(int data) {
this.data = data;
this.next = null;
}
}
public class LinkedQueue {
Node front; // 头指针
Node rear; // 尾指针
LinkedQueue() {
front = null;
rear = null;
}
// 入队操作
public void enqueue(int data) {
Node newNode = new Node(data);
if (rear == null) {
front = newNode;
rear = newNode;
} else {
rear.next = newNode;
rear = newNode;
}
}
// 出队操作
public int dequeue() {
if (front == null) {
System.out.println("队列为空");
return -1;
}
int data = front.data;
front = front.next;
if (front == null) {
rear = null;
}
return data;
}
// 检查队列是否为空
public boolean isEmpty() {
return front == null;
}
// 打印队列元素
public void printQueue() {
Node temp = front;
while (temp != null) {
System.out.print(temp.data + " ");
temp = temp.next;
}
System.out.println();
}
public static void main(String[] args) {
LinkedQueue queue = new LinkedQueue();
// 入队元素
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
// 打印队列元素
System.out.println("队列元素: ");
queue.printQueue();
// 出队元素
System.out.println("出队元素: " + queue.dequeue());
// 再次打印队列元素
System.out.println("队列元素: ");
queue.printQueue();
}
}
在这个示例中,Node
类表示链表中的节点,每个节点都有一个数据字段和一个指向下一个节点的指针。LinkedQueue
类实现了链队列,包括enqueue
(入队)、dequeue
(出队)、isEmpty
(检查队列是否为空)和printQueue
(打印队列元素)等方法。在main
方法中,我们创建了一个LinkedQueue
对象,并向其中添加了一些元素,然后执行出队操作并打印队列元素。