LinkedList集合应用:实现队列

打印 上一主题 下一主题

主题 646|帖子 646|积分 1938

LinkedList集合应用:实现队列

题目:

使用LinkedList类实现一个Queue(队列)类。Queue类应该具有以下功能:

  • void enqueue(E element):将给定的元素添加到队列的末尾。
  • E dequeue():删除并返回队列的第一个元素。如果队列为空,则抛出NoSuchElementException异常。
  • E peek():返回队列的第一个元素。如果队列为空,则抛出NoSuchElementException异常。
  • int size():返回队列中的元素数量。
  • boolean isEmpty():如果队列为空,则返回true,否则返回false。
 
  1. class Queue<E> {
  2.     // 使用LinkedList实现队列
  3.     private LinkedList<E> list;
  4.     public Queue() {
  5.         // 初始化队列
  6.         list = new LinkedList<>();
  7.     }
  8.     public void enqueue(E element) {
  9.         // 将给定的元素添加到队列的末尾
  10.         list.addLast(element);
  11.     }
  12.     public E dequeue() {
  13.         // 删除并返回队列的第一个元素
  14.         // 如果队列为空,则抛出NoSuchElementException异常
  15.         if (list.isEmpty()) {
  16.             throw new NoSuchElementException();
  17.         }else {
  18.             return list.remove(0);
  19.         }
  20.     }
  21.     public E peek() {
  22.         // 返回队列的第一个元素
  23.         // 如果队列为空,则抛出NoSuchElementException异常
  24.         if (list.isEmpty()) {
  25.             throw new NoSuchElementException();
  26.         }else {
  27.             return list.getFirst();
  28.         }
  29.     }
  30.     public int size() {
  31.         // 返回队列中的元素数量
  32.         return list.size();
  33.     }
  34.     public boolean isEmpty() {
  35.         // 如果队列为空,则返回true,否则返回false
  36.         if (list.size()==0) {
  37.             return  true;
  38.         }else {
  39.             return false;
  40.         }
  41.     }
  42. }
复制代码
添加测试类:
  1. public class Task {
  2.     public static void main(String[] args) {
  3.         Queue<Integer> queue = new Queue<>();
  4.         // 加入队列
  5.         queue.enqueue(1);
  6.         queue.enqueue(2);
  7.         queue.enqueue(3);
  8.         // 出队
  9.         System.out.println(queue.dequeue());
  10.         // 查看队首元素
  11.         System.out.println(queue.peek());
  12.         // 查看队列大小
  13.         System.out.println(queue.size());
  14.         System.out.println(queue.isEmpty());
  15.     }
  16. }
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表