前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数组模拟队列思路

数组模拟队列思路

作者头像
吃猫的鱼Code
发布2023-03-02 09:33:13
2150
发布2023-03-02 09:33:13
举报

队列

队列介绍

队列是一个有序列表,可以用链表或数组实现。

遵循先入先出的原则:即先存入队列的数据要先取出,后存入队列的数据要后取出。

实现思路

插入元素:

每次插入数据前需要判断队列是否已经满了,满了则无法插入。

如果队列未满,可以在头部将元素进行插入。

删除元素:

每次删除元素前需要判断是否还有元素。

删除元素,把第一位元素(最新插入的元素)进行删除,把队列中后面的元素往前挪动一位。

代码示例

public class ArrayQueue {
    private int maxSize;
    private int front;
    private int rear;
    private int[] arr;
    /**
     * 构造器,新建队列
     */
    public ArrayQueue(int arrMaxSize){
        maxSize = arrMaxSize;
        arr =new int[arrMaxSize];
        front = -1;             //队列当前开头位置
        rear = -1;              //队列当前结尾位置
    }

    /**
     * 判断当前队列是否满了
     */
    public boolean isFull(){
        return rear == maxSize-1;
    }

    /**
     * 往队列里面添加一个数,返回是否成功的布尔类型
     */
    public boolean insertArray(int num){
        if(isFull()){
            System.out.println("已满,无法添加!");
            return false;
        }
        arr[++rear] = num;
        return true;
    }

    /**
     * 从队列里面抽出一个数出来,返回是否成功的布尔类型
     */
    public int deleteArray(){
        //首先判断队列中是否有元素
        if(front==rear){        //当前队列并没有元素,返回-1
            return 0;
        }
        //当前队列有元素,需要将结尾位置减去1,并且将数组元素全部往前面挪动一位,然后函数返回抽出来的元素
        int returnNum = arr[0];
        for(int i=1;i<=rear;i++){
            arr[i-1]=arr[i];
        }
        rear--;
        return returnNum;
    }
    /**
     * 遍历当前数组的所有元素并且将其输出
     */
    public void outPut(){
        for (int i=0;i<=rear;i++){
            System.out.print(arr[i]+" ");
            System.out.println();
        }
    }
}

版权属于: 吃猫的鱼

本文链接: https://cloud.tencent.com/developer/article/2230965

作品声明:未经许可,禁止转载!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 队列
    • 队列介绍
      • 实现思路
        • 代码示例
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档