java 实现有界队列_数据结构---队列及简单实现有界队列

本文介绍了队列的基本概念,包括单向队列和双端队列,并以Java为例,详细阐述了如何使用数组实现一个有界队列。文章通过实例展示了如何插入、删除元素,并讨论了满队列时如何利用取模操作避免数组扩容,同时提供了完整的MyQueue类代码实现。
摘要由CSDN通过智能技术生成

队列也是一种特殊的线性表,它只允许在两端进行操作,插入或者取出,不允许操作中间的数据。比如只允许在对头出队,队尾入队。这样就具有先进先出的特性(first in first out-FIFO)。就像排队买东西一样,不允许插队,先排先买。

队列分为单向队列(有序队列),就是上面所说的排队模型,先进先出的操作,只允许一边进,另一边出,比如Java中的Queue。另外一种就是双端队列,两端都可以进行进出操作。比如java中的Deque。

既然队列也是线性表的一种,那么实现队列,就可以用数组或者链表来实现。

如果再细分一点的话,可以看着这俩接口的实现,简单列举几个:

PriorityQueue:数组实现的有序队列,可以传入一个比较器Comparator,实现队列中元素的顺序。。

ArrayDeque:数组实现的双端队列

LinkedList:用链表实现的双端队列

Juc并发包下面:

ArrayBlockingQueue:数组实现的阻塞队列

PriorityBlockingQueue:带优先级的阻塞队列

LinkedBlockingQueue:链表实现的阻塞队列

可以看出大佬们的命名是很规范的,从类名直接可以看出来这队列的特性以及用什么数据结构实现的。

简单用数组实现一个有界队列

1.初始化一个数组,这个是头尾都是指向的0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值