java循环队列入队出队算法_循环队列的实现(出队,入队,遍历等)

本文介绍了Java中循环队列的实现,包括创建、判断队列空满、元素入队、出队及遍历的操作。通过使用front和rear指针以及取模运算解决假溢出问题,提供了一个MaxSize为21的循环队列数据结构示例,并展示了具体的入队、出队和遍历的代码实现。
摘要由CSDN通过智能技术生成

队列的抽象数据类型定义为:

类型名称:队列。

数据对象集:一个有0个或多个元素的有穷线性表。

操作集:对于一个长度为正整数MaxSize的队列Q∈Queue, 记队列中的任一元素item∈ElementType,有:

(1)Queue CreateQueue(int MaxSize):创建一个长度为MaxSize的空队列;

(2)bool isEmpty(Queue Q):判断队列是否为空,若不空返回true(1),否则返回false(0);

(3)void AddQ(Queue Q, ElementType item):若队列满,返回已满的信息;否则,把这个元素入队;

(4)bool isFull(Queue Q):判断队列是否满,若满返回true(1),否则返回false(0);

(5)ElementType DeleteQ(Queue Q):若队列为空,返回队列为空的信息;否则,把队头元素先用临时变量存储起来并从队列中删去,最后返回队头元素。

为了解决队尾溢出(假溢出)而实际上数组仍然有多余空间的问题,我们运用循环队列解决问题。

此时需要定义一个front和rear分别指向队列的头元素的前一个位置和尾元素,并且开始时都初始化成0;

当插入和删除操作的作用单元达到数组的末端后,用公式“rear(或front)%数组长度”取余运算就可以实现折返到起始单元。

队满的条件是:“(rear+1)%数组长度”等于front;队空的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值