Java - 数据结构,队列

本文介绍了Java中的队列数据结构,包括普通队列和双端队列的概念,详细阐述了队列的常用方法如Queue和Deque。通过单链表和循环队列的模拟实现展示了队列的操作,并探讨了队列在面试中常见的设计题目,如设计循环队列,以及如何使用队列和栈相互转换的算法实现。
摘要由CSDN通过智能技术生成

一、什么是队列

普通队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)
在这里插入图片描述
双端队列:可以在对头或者队尾进行插入或者删除操作。
在这里插入图片描述
普通队列和双端队列
在这里插入图片描述
从上面知道双向列表可以当普通队列使用,也可以当双端队列使用,也可以当栈使用。

二、队列常用的方法

2.1、Queue

在这里插入图片描述
注意add函数和offer函数
在这里插入图片描述

public static void main(String[] args) {
   
        Queue<Integer> queue = new LinkedList<>();
        queue.add(1);//添加元素
        queue.add(2);//添加元素
        queue.add(3);//添加元素
        queue.offer(4);//添加元素
        queue.offer(5);//添加元素
        queue.offer(6);//添加元素
        System.out.println(queue.peek());//获取对头元素,但是不删除
        System.out.println(queue.element());//获取对头元素,但是不删除
        System.out.println(queue.poll());//获取对头元素,并且删除对头元素
        System.out.println(queue.remove());//获取对头元素,并且删除对头元素
    }

2.2、Deque

在这里插入图片描述

public static void main(String[] args) {
   
        Deque<Integer> deque = new LinkedList<>();
        deque.add(1);//默认在队尾添加元素
        deque.addFirst(2);//在对头添加元素
        deque.addLast(3);//在队尾添加元素
        deque.offer(4);//在队尾添加元素
        deque.offerLast(5);//在队尾添加元素
        deque.offerFirst(6);//在队头添加元素
        System.out.println(deque);
        System.out.println(deque.peek());//获取元素,但是不删除
        System.out.println(deque.peekFirst());//获取队头元素,但是不删除
        System.out.println(deque.peekLast());//获取队尾元素,但是不删除
        System.out.println(deque.poll());//获取队头元素,并且删除
        System.out.println(deque.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Später321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值