学习笔记-队列(数组实现)

这篇博客介绍了队列在银行叫号系统等场景的应用,详细解析了如何使用数组来模拟队列,包括思路分析和代码实现。文章还提到了数组实现队列存在的问题,并预告了将通过算法优化为环形队列以实现资源复用。
摘要由CSDN通过智能技术生成

使用场景

模拟银行叫号系统
在这里插入图片描述

队列介绍

队列是一个有序列表,可以用数组或是链表来实现
遵循先入先出的原则,即:先存入队列的数据,要先取出,后存入的要后取出
队列本身是有序列表,使用数组的结构来存储队列的数据
因为队列的输入,输出是分别从前后端来处理,因此需要两个变量front及rear分别记录队列签
后端的下标,front会随着数据输出而改变,而rear则是随着数据输入而改变,(入队列rear增加
,出队列front增加)

示意图
在这里插入图片描述

数组模拟队列思路分析

将尾指针后移.rear+1,	front == rear()
若尾指针rear小于队列的最大下标maxSize - 1,则将数据存入rear所指的数组元素中,否则无法
存入数据.	rear == maxSize - 1(队列满)

代码实现

//使用数组模拟队列-编写一个ArrayQueue类
class ArrayQueue {
   
    //表示数组的最大容量
    private int maxSize;
    //队列头
    private int front;
    //队列尾
    private int rear;
    //数组用于存放数据,模拟队列
    private int[] arr;

    //创建队列的构造器
    public ArrayQueue(int arrMaxSize) {
   
        maxSize = arrMaxSize;//最大容量
        arr = new int[maxSize];//格式化数组
        front = -1;//指向队列头部,分析出front是指向队列头的前一个位置
        rear = -1;//指向队列尾,指向队列尾的数据(即是队列最后一个数据)
    }

    //判断队列是否满
    public boolean isFull() {
   
        return rear ==
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值