数组队列及循环队列

本文介绍了Java中数组队列和循环队列的概念与应用,通过实际场景阐述队列的先入先出原则。文章详细讲解了如何用数组模拟队列,包括基本属性、实现过程,并提供了相关方法的实现。最后讨论了数组队列的局限性,引出了循环队列的必要性,并指出了循环队列在判断满队列和添加数据时的特殊处理方式。
摘要由CSDN通过智能技术生成

java数据结构之----数组队列及循环队列

数据结构与算法学习的第二篇

什么时候需要用到队列

队列在实际开发过程中运用的非常广泛,由于我也是学习基础,还没有开发过什么项目,所以用到时候就知道了

什么是队列

  • 队列是一个有序列表,可以用数组或者链表来实现
  • 队列遵守先入先出的原则

联系实际场景

可以把一个队列的存入,读取数据的过程看成在银行里面排队办理业务,进银行,取号,叫号,办理业务,出银行这几个过程。

具体图示

在这里插入图片描述

实现思路

由上面的图示,可以知道数组队列需要以下几个属性来完成模拟队列的实现:

基本属性

  • maxSize:表示队列的最大存储容量,也就是数组的大小
  • front:队头属性
  • rear:队尾属性
  • arrQueue:模拟队列的数组

实现过程

  1. 队列的输入和输出是由队头和队尾属性控制的,因此由front和rear分别记录下队列的前后端下标
  2. 当front 的下标志值等于rear的下标值时,队列为空
  3. 当rear 的值等于 maxSize - 1时队列为满队列
  4. 加入数据时队尾的rear增加1
  5. 输出出队时队列的front减少1

实现上述方法需要创建的方法

  • 判断队列是否是满队列的方法 isFull()
  • 判断队列是否为空队列的方法 isEmpty()
  • 增加数据的方法addQueue(),注意在增加数据时需要判断队列是否是满队列,是满队列的话数据增加不了
  • 获取队列数据的方法getQueue(),注意获取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值