java 排序队列_java实现顺序队列

java 排序队列_java实现顺序队列packagequeue;importjava.util.Scanner;publicclassArrayQueueLoop{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//测试代码//测试数组循化队列CircleQueuetestQueue=newCircleQueue(4);//设置的是有效…

大家好,又见面了,我是你们的朋友全栈君。

packagequeue;importjava.util.Scanner;public classArrayQueueLoop

{public static voidmain(String[] args)

{//TODO Auto-generated method stub//测试代码//测试数组循化队列

CircleQueue testQueue=new CircleQueue(4);//设置的是有效的数据,存在有一个空间作为约定

char key=’ ‘;//接受用户的输入

Scanner in=newScanner(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=in.next().charAt(0);switch(key)

{case ‘s’:

testQueue.showQueue();break;case ‘e’:

in.close();

loop=false;break;case ‘a’:

System.out.println(“请输入要入队的数字:”);int add=in.nextInt();

testQueue.addQueue(add);break;case ‘g’:try{

System.out.printf(“出队的元素为:%d\n”,testQueue.getQueue());

}catch(Exception e) {//TODO: handle exception

System.out.println(e.getMessage());

}break;case ‘h’:try{

System.out.printf(“队首元素为:%d\n”,testQueue.headQueue());

}catch(Exception e) {//TODO: handle exception

System.out.println(e.getMessage());

}break;default:break;

}

}

System.out.println(“退出成功!”);

}

}classCircleQueue

{private int maxSize;//数组的最大容量

private int front;//指向队列的头

private int rear;//指向队列的尾部

private int[] arr;//该数组用于存放队列,模拟队列//创建队列的构造器

public CircleQueue(intarrMaxSize)

{

maxSize=arrMaxSize;

arr=new int[maxSize];

front=0;//指向队列的头部,初始值为0

rear=0;//指向队列的尾部的后一个位置,初始值为0

}//判断队列是否满

public booleanisFull()

{return rear==maxSize-1;

}//判断队列是否为空

public booleanisEmpty()

{return rear==front;

}//添加数据到队列

public void addQueue(intn)

{//判断队列是否满了

if(isFull())

{

System.out.println(“队列满,不能加入数据!”);

}//直接将数据加入就好了

arr[rear]=n;//将rear后移此处必须取模

rear=(rear+1)%maxSize;

}//获取队列的数组,数据出队列

public intgetQueue()

{//判断队列是不是空了

if(isEmpty())

{//抛出异常

throw new RuntimeException(“队列空,不能够取数据!”);

}else//不为空

{//这里需要分析出,front是队列第一个元素//1.先front的对应的值保存到一个临时的变量//2.front后移//3.将临时保存的变量返回

int value=arr[front];

front=(front+1)%maxSize;returnvalue;

}

}//显示队列所有的数据

public voidshowQueue()

{//简单的遍历

if(isEmpty())

{

System.out.println(“队列为空,没有数据!”);return;

}//思路从front开始遍历,遍历时候要遍历多少个元素就可以了//要求出当前队列的个数

for(int i=front;i

{

System.out.printf(“arr[%d]=%d\n”,i%maxSize,arr[i%maxSize]);//注意可能会越界,所以要取模

}

}//返回当前队列有多少元素

public intgetQueueElementNumbers()

{return (rear+maxSize-front)%maxSize;

}//显示队列的头数据,注意不是取出数据

public intheadQueue()

{//判断队列已经为空就没有头数据

if(isEmpty())

{

System.out.println(“队列空的,没有数据!”);throw new RuntimeException(“队列空的,没有数据!”);

}returnarr[front];

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160436.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月16日 上午7:36
下一篇 2022年7月16日 上午7:36


相关推荐

  • 睿智的目标检测7——yolo3详解及其预测代码复现

    睿智的目标检测7——yolo3详解及其预测代码复现睿智的目标检测7——yolo3详解及其预测代码复现学习前言代码下载实现思路1、yolo3的预测思路(网络构建思路)2、利用先验框对网络的输出进行解码3、进行得分排序与非极大抑制筛选实现结果学习前言对yolo2解析完了之后当然要讲讲yolo3,yolo3与yolo2的差别主要在网络的特征提取部分,实际的解码部分其实差距不大。代码下载本次教程主要基于github中的项目https://git…

    2022年6月18日
    40
  • 老给力的网址

    老给力的网址http://blog.csdn.net/elimago/archive/2009/02/26/3938842.aspx转载于:https://www.cnblogs.com/diyunpeng/archive/2011/06/30/2094232.html

    2022年7月13日
    25
  • 3、基础数据类型和用户交互

    1,基础数据类型。1、int( 整数类型): 在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807数值运算: + – * / ** %2、long(长整型…

    2021年11月30日
    44
  • 如何优雅地送妹子礼物给她_怎样送女生礼物让女生接受

    如何优雅地送妹子礼物给她_怎样送女生礼物让女生接受一颗林萌 ,剁手已剁成哆啦A梦。刘巍然-学酥 等 15240 人赞同—————————————————————————————–有转载需要请私信,不接受未通知作者本人直接转载的行为,按原创法规直接举报。因为工作原因经常接触买买买,加上生活里经常剁手.

    2022年10月4日
    4
  • eidos云矿机_空投挖矿

    eidos云矿机_空投挖矿eidos空投矿机虽然已经有几款网页版的了,甚至还有收费的,但并不适合长期运行,特别是需要挂在VPS里,所以就出现了这款控制台运行的,如果觉得对你有帮助就给个star吧。项目地址https://github.com/donjan-deng/eidos-miner环境需求nodejs>=10scatter>=11(网页版可在低版本运行)使用方法也有个简易的网页版…

    2022年9月30日
    4
  • 德国人制作的 Windows 2000/XP 优化脚本2.2_build9 (2008-05-31)

    德国人制作的 Windows 2000/XP 优化脚本2.2_build9 (2008-05-31)SuperbatchSv 2 build9 2008 05 31 这是一个针对 Windows2000 XP 的自动安全设置补丁 是一个命令行程序 作者主页 http www ntsvcfg de 软件评价 http www ntsvcfg de pfw 下载地址 http www ntsvcfg de svc2kxp zip 使用说明 下载后 将压缩包内的文件

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号