package com.atguigu.queue;import jdk.nashorn.internal.ir.ReturnNode;import java.util.Scanner;/*** @创建人 wdl* @创建时间 2021/3/17* @描述*/
public class ArrayQueueDemo {public static void main(String[] args) {//测试一把//创建一个队列ArrayQueue queue = new ArrayQueue(3);char key=' ';//接收用户输入Scanner scanner = new Scanner(System.in);boolean loop=true;//输出一个菜单while(loop){System.out.println("s(show):显示队列");System.out.println("e(exit):退出程序");System.out.println("a(add):添加数据到队列");System.out.println("g(get):从队列取出数据");System.out.println("h(head):查看队列头的数据");key=scanner.next().charAt(0);//接收一个字符switch (key){case 's':queue.showQueue();break;case 'a':System.out.println("输入一个数");int value=scanner.nextInt();queue.addQueue(value);break;case 'g'://取出数据try {int res=queue.getQueue();System.out.println("取出的数据是:"+res);} catch (Exception e) {System.out.println(e.getMessage());}break;case 'h'://查看队列头的数据try {int res = queue.headQueue();System.out.println("队列头的数据是:"+res);} catch (Exception e) {System.out.println(e.getMessage());}break;case 'e'://退出scanner.close();loop=false;break;default:break;}}System.out.println("程序退出");}
}//使用数组模拟队列编写一个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==maxSize-1;}//判断队列是否为空public boolean isEmpty(){return rear==front;}//添加数据到队列public void addQueue(int n){//判断队列是否满if(isFull()){System.out.println("队列满,不能加入数据");return;}rear++;arr[rear]=n;}//获取队列的数据,出队列public int getQueue(){//判断队列是否为空if(isEmpty()){//通过抛出异常throw new RuntimeException("队列空,不能取数据");}front++;//front后移return arr[front];}//显示队列的所有数据public void showQueue(){//遍历if(isEmpty()){System.out.println("队列空的,没有数据");return;}for (int i = 0; i < arr.length; i++) {System.out.println("arr["+i+"]"+"="+arr[i]);}}//显示队列的头数据,注意不是取出数据public int headQueue(){//判断if(isEmpty()){throw new RuntimeException("队列空的,没有数据");}return arr[front+1];//因为front指向队列头的前一个位置}
}

用数组模拟队列的实现相关推荐

  1. uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列

    题目很简单,给一个队列以及文件的位置,然后一个一个检查,如果第一个是优先级最高的就打印,否则放到队列后面,求所要打印的文件打印需要花费多长时间. 这里我用数组模拟队列实现,考虑到最糟糕的情况,必须把数 ...

  2. (数据结构与算法)数组模拟队列和环形队列

    文章目录 数组模拟队列 思路 代码实现 问题分析并优化 数组模拟环形队列 思路 代码实现 数组模拟队列 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即:先存入队列的数据,要先取 ...

  3. 数组模拟队列(代码实现)

    数据结构可分为两种,第一种是线性结构,第二种是非线性结构,线性结构又分为连续存储和链表存储. 常见的线性结构有数组,链表,队列,栈: 以下是数组模拟队列的实现(队列特点就是先进先出): //数组模拟队 ...

  4. 数据结构和算法之数组模拟队列

    特点:先入先出(类似于银行排队问题) 一.数组模拟队列 package com.company;import java.util.Scanner;/*** @author:抱着鱼睡觉的喵喵* @dat ...

  5. 不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列

    文章目录 队列简介 数组模拟队列(无法复用) 数组模拟环形队列(可复用) 队列简介 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即先存入队列的数据,先取出,后存入的后取出. 示 ...

  6. 【算法】java 用 数组 模拟 队列

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 1.概述 本次使用java 用 数组 模拟 队列 package com.algor ...

  7. bash shell数组模拟队列queue和shell数组使用技巧

    一 shell数组操作模拟队列queue或者栈stack http://www.tech-recipes.com/rx/911/queue-and-stack-using-array/ here is ...

  8. 数据结构-数组模拟队列-环形实现(JAVA)

    需要注意的是 队列容量为maxSize - 1 判断队列为空 rear == front 判断是否为满 (rear + 1) % maxSize == front 或者 (rear - front + ...

  9. 数据结构 - 数组模拟一般队列

    关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 队列 队列是一个有序列表,可以使用数组或者链表实现 遵循先入先出的原则. 即先存入列表的数据要先取出,后存入的要 ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:循环神经网络
  2. UI培训教程分享:APP图标设计的6种风格都有哪些?
  3. JAVA中this用法小结
  4. OpenCV学习之Scalar数据类型
  5. teamviewer 过期解决办法
  6. QT5 exec()模态显示子对话框,父子对话框都最小化后显示桌面
  7. 外卖红包深度研究报告:千亿市场下的公号私域
  8. sql子查询示例_学习SQL:SQL查询示例
  9. 实现类似add(1)(2)(3)的效果
  10. mysql中innodb的工作原理_解读MySQL的InnoDB引擎日志工作原理
  11. 人体轮廓_速写人体轮廓的处理有哪些技法?
  12. 从零开始开发标准的s57电子海图第三篇--ECDIS标准(共一百篇)
  13. Flutter开发之——动画-Lottie
  14. oracle创建表空间
  15. 3DES加密算法原理
  16. 1129 - 喵哈哈村的战斗魔法师丶坏坏い月 线段树
  17. 自媒体:公众号内容可以同步到头条吗
  18. Educational Codeforces Round 90 (Rated for Div. 2)(D 思维 E 打表)
  19. 数据挖掘分析考试笔记
  20. 多线程经典问题 卖票问题

热门文章

  1. 磁盘寻道算法 Python实现
  2. 2018-2019 ACM-ICPC, Asia Shenyang Regional Contest E. The Kouga Ninja Scrolls 切比雪夫距离 +线段树
  3. HDU - 7073 Integers Have Friends 2.0 随机化 + 质因子
  4. P1494 [国家集训队]小Z的袜子
  5. 牛客题霸 [平衡二叉树] C++题解/答案
  6. 世界五星级大厨经典菜品集
  7. 【正睿2021寒假省选第二轮集训 day 1】令牌生成 (组合数+二分)
  8. 状态压缩:枚举子集(最优组队)(ybtoj)(动态规划)
  9. P4492-[HAOI2018]苹果树【dp】
  10. jzoj1478-堆排序【堆】