当前位置: 首页 > news >正文

Java数据结构————队列

一 、队列

在Java中,Queue是个接口,底层是通过链表实现的。
在这里插入图片描述
只允许在一端进行插入数据操作,
在另一端进行删除数据操作的特殊线性表,
队列具有先进先出FIFO(First In First Out) 。

入队列:
进行插入操作的一端称为队尾(Tail/Rear)。

出队列:
进行删除操作的一端称为队头(Head/Front)。

在这里插入图片描述

二 、队列的常用方法

Queue是个接口,
在实例化时必须实例化LinkedList的对象,
因为LinkedList实现了Queue接口。

在这里插入图片描述

public static void main(String[] args) {Queue<Integer> q = new LinkedList<>();q.offer(1);q.offer(2);q.offer(3);q.offer(4);q.offer(5);                  // 从队尾入队列System.out.println(q.size());System.out.println(q.peek());  // 获取队头元素q.poll();System.out.println(q.poll());  // 从队头出队列,并将删除的元素返回if(q.isEmpty()){System.out.println("队列空");}else{System.out.println(q.size());}}

三 、 队列的模拟实现

在这里插入图片描述

四 、 循环队列

循环队列通常使用数组实现。
在这里插入图片描述

五 、 双端队列 (Deque)

Deque是一个接口,使用时必须创建LinkedList的对象。
在这里插入图片描述

在这里插入图片描述

双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,
deque 是 “double ended queue” 的简称。
元素可以从队头出队和入队,也可以从队尾出队和入队。

http://www.lryc.cn/news/182476.html

相关文章:

  • 办公网络构建
  • 单层神经网络
  • htb-cozyhosting
  • 网络安全渗透测试工具之skipfish
  • 【Rust】文件系统
  • mysql双主双从读写分离
  • postgresql-物化视图
  • 多层神经网络和激活函数
  • Visual Studio Code键盘快捷键大全
  • 新手学习笔记-----⽂件操作
  • LeetCode 251:展开二维向量
  • 练[BSidesCF 2020]Had a bad day
  • 第十五章 类和对象——友元
  • 【数仓精品理论分析】能不能学大数据?
  • java复习-多态性
  • 美团外卖优惠券小程序 美团优惠券微信小程序 自带流量主模式 带教程
  • 编写IDEA插件,实现根据现有代码生成流程图
  • 王杰国庆作业day6
  • 【C语言】循环结构程序设计 (详细讲解)
  • Spring的注解开发-注解原理解析-xml方式/注解方式组件扫描
  • 导出视频里的字幕
  • 【KingbaseES】银河麒麟V10 ARM64架构_安装人大金仓数据库KingbaseES_V8R6(CentOS8)
  • 【Vue】Vuex详解,一文读懂并使用Vuex
  • 第三章 C程序设计
  • QB/T 2703-2020 汽车装饰用皮革检测
  • 使用正则表达式批量修改函数
  • 【网络协议】UDP
  • 雷达编程实战之提高探测速度
  • pyspark常用功能记录
  • Spring面试题学习: 单例Bean是单例模式吗?