LinkedList集合应用:实现队列
LinkedList集合应用:实现队列
题目:
使用LinkedList类实现一个Queue(队列)类。Queue类应该具有以下功能:
-
void enqueue(E element):将给定的元素添加到队列的末尾。
-
E dequeue():删除并返回队列的第一个元素。如果队列为空,则抛出NoSuchElementException异常。
-
E peek():返回队列的第一个元素。如果队列为空,则抛出NoSuchElementException异常。
-
int size():返回队列中的元素数量。
- boolean isEmpty():如果队列为空,则返回true,否则返回false。
class Queue<E> { // 使用LinkedList实现队列 private LinkedList<E> list; public Queue() { // 初始化队列 list = new LinkedList<>(); } public void enqueue(E element) { // 将给定的元素添加到队列的末尾 list.addLast(element); } public E dequeue() { // 删除并返回队列的第一个元素 // 如果队列为空,则抛出NoSuchElementException异常 if (list.isEmpty()) { throw new NoSuchElementException(); }else { return list.remove(0); } } public E peek() { // 返回队列的第一个元素 // 如果队列为空,则抛出NoSuchElementException异常 if (list.isEmpty()) { throw new NoSuchElementException(); }else { return list.getFirst(); } } public int size() { // 返回队列中的元素数量 return list.size(); } public boolean isEmpty() { // 如果队列为空,则返回true,否则返回false if (list.size()==0) { return true; }else { return false; } } }
添加测试类:
public class Task { public static void main(String[] args) { Queue<Integer> queue = new Queue<>(); // 加入队列 queue.enqueue(1); queue.enqueue(2); queue.enqueue(3); // 出队 System.out.println(queue.dequeue()); // 查看队首元素 System.out.println(queue.peek()); // 查看队列大小 System.out.println(queue.size()); System.out.println(queue.isEmpty()); } }