java完成链式队列
时间: 2024-10-13 21:12:27 浏览: 29
在Java中,我们可以创建一个链式的队列数据结构,通常通过自定义一个节点类(Node)和一个队列类(LinkedQueue),利用双向链表的方式来实现。这里是一个简单的例子:
首先,我们定义一个`Node`类,它包含一个元素值和指向下一个节点的引用:
```java
public class Node<T> {
T data;
Node<T> next;
public Node(T data) {
this.data = data;
this.next = null;
}
}
```
接着,我们定义`LinkedListQueue`类,继承自`AbstractQueue`或者`Deque`接口,实现队列的功能:
```java
import java.util.Deque;
public class LinkedListQueue<T> implements Deque<T> {
private Node<T> head;
private Node<T> tail;
// 添加元素到队尾
@Override
public void addLast(T element) {
Node<T> newNode = new Node<>(element);
if (isEmpty()) {
head = newNode;
tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
// 其他方法如addFirst、removeFirst、pollLast等
// 队列是否为空
@Override
public boolean isEmpty() {
return head == null;
}
// 返回队列大小
@Override
public int size() {
int count = 0;
Node<T> current = head;
while (current != null) {
count++;
current = current.next;
}
return count;
}
// 更多链表操作...
}
```
在这个设计中,`addLast()`方法用于向队尾添加元素,`isEmpty()`和`size()`分别检查队列是否为空以及获取队列长度。链式队列的特点是可以高效地在队尾插入和删除元素。
阅读全文