、实现链队列的入队与出队操作,设计main()函数进行调用
时间: 2024-12-08 20:23:07 浏览: 6
链队列是一种利用链接结构实现的线性表数据结构,它的特点是插入和删除元素的操作在队列的两端进行。在链式队列中,通常有一个头节点和一个尾节点。入队操作是在尾部添加元素,而出队操作则是在头部移除元素。
**实现链队列的入队(enqueue)与出队(dequeue)操作:**
1. **入队(enqueue)操作:**
- 创建一个新的节点,存储新元素。
- 如果队列为空(头指针为空),将新的节点设为头节点。
- 否则,更新当前头节点的next指向新的节点,然后将头指针向前移动一步。
2. **出队(dequeue)操作:**
- 检查队列是否为空,如果为空直接返回null或抛异常。
- 将头节点的数据复制到临时变量中,并将其从链表中移除(头节点的next指向下一个节点)。
- 如果队列仅剩一个元素,头节点的next设为null(表示队列已空)。
**main()函数调用示例:**
```java
public class Queue {
private Node head; // 队首指针
// 定义节点类
static class Node {
int data;
Node next;
Node(int data) {
this.data = data;
next = null;
}
}
// 入队
public void enqueue(int value) {
Node newNode = new Node(value);
if (head == null) {
head = newNode;
} else {
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
}
// 出队
public int dequeue() {
if (head == null) {
throw new IllegalStateException("Queue is empty");
}
int value = head.data;
head = head.next;
return value;
}
// 主函数演示
public static void main(String[] args) {
Queue queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println("Dequeued element: " + queue.dequeue()); // 输出:1
System.out.println("After dequeue: " + queue.dequeue()); // 输出:2
}
}
```
阅读全文