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());
    }
}

 

posted @ 2023-03-02 14:37  好学的耀耀  阅读(86)  评论(0编辑  收藏  举报