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];

}

}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java中类与对象的详解

    java中类与对象的详解

  • 史上最牛逼的CDH安装部署来了 亲测有效

    cdh安装部署错误史上最低可以试试

  • 学习成功:中学生成就梦想的15堂必修课

    学习成功:中学生成就梦想的15堂必修课管斌全:《学习成功:中学生成就梦想的15堂必修课》笛案:自信国内外成功学的著作看过不少,但我只向人推荐管斌全的作品。以下内容节选自网络,个人有渠道还是买书好,也算是对作者的支持。fygub0231@sina.com0571-63311953013567128396该书已经出版了4个版本。  第一个版本是由北京海潮出版社(2002年10月)出版,书名为《我信我能我

  • Spring Cloud版本与Spring Boot版本之间匹配关系「建议收藏」

    Spring Cloud版本与Spring Boot版本之间匹配关系「建议收藏」很多人在使用springboot和springcloud,但是对于这两者之间的版本关系不是很清楚,特别是在面临升级的时候不知道该如何操作。本文简要摘录的官方文档的部分内容作为依据,供广大同行参考。问题的提出,我现在使用的是1.5.1版本的springboot和Edgware.RELEASE版本的springcloud,我想升级到springboot到2.0.0,springcloud需要升…

  • 大数据分析与应用技术创新平台「建议收藏」

    大数据分析与应用技术创新平台「建议收藏」原文链接:https://mp.weixin.qq.com/s/kCDYOInF8KjHstIMAWSljA 大数据分析与应用技术创新平台 张平文,鄂维南,袁晓如,傅毅明北京大学数学科学学院,北京 100871 北京大学大数据科学研究中心,北京 100871  北京大学信息科学技术学院,北京 100871  北京大数据研究院,北京 100871 摘…

  • 十二大相似图片搜索网站(以图搜图)

    十二大相似图片搜索网站(以图搜图)十二大相似图片搜索网站(以图搜图)如何凭着一张现有图片找出它的原始图片,或者是凭着一张小的缩略图找出原始大图?下面的搜索引擎可以帮你实现、以图找图、以图搜图。以图搜图是颠覆性的搜索方式,基于图片的搜索模式自09年以来在全球各大权威评选中,都被公认为未来几年互联网最有前途的创新应用。随着…

发表回复

您的电子邮箱地址不会被公开。

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