java中如何实现队列的入队与出队
java
入队
队列
首先要定义几个变量与数组:
a
:表示队列的数组
rear
:表示队列尾,这里初始化为0
(入队一个元素下标就往后移动一位)
front
:表示队列头,同样初始化为0
(出队一个元素下标就往后移动一位)
maxsize
:最大下标,这里初始化为4,但是队列只能存放3个。(队列的长度加一)
这里数组预留出的一个位置用来判断队列的空或满。
java相关视频推荐:java视频教程
参考下面的图方便理解:
此时元素个数为3已经是满了的,因为数组个数是有效的元素个数加一。
注:元素下标只能为0——3
实例代码如下:
//数据结构——队列 import java.util.Scanner; public class Queue { int[] a ; int rear; int front; int maxsize; public static void main(String[] args) { Queue queue = new Queue(); Scanner scan = new Scanner(System.in); int i; do { System.out.println("请输入:1入队 2出队 3查看 0退出"); i = scan.nextInt(); switch(i) { case 1: System.out.println("请输入要入队的元素:"); queue.addQueue(scan.nextInt()); break; case 2: queue.exitQueue(); break; case 3: queue.showqueue(); break; } }while(i!=0); System.out.println("退出成功"); } //构造函数 public Queue(){ a = new int[4]; rear = 0; front = 0; maxsize = 4; } //判断队列是否为空 public boolean judgeNull() { return rear == front; } //判断队列是否已满 public boolean judgeFull() { return (rear+1) % maxsize == front; } //入队 public void addQueue(int num) { //判断,若队列已满则结束,不满则将其添加 if(judgeFull()) { System.out.println("队列已满"); return ; } a[rear] = num; rear = (rear+1) % maxsize; } //出队 public void exitQueue() { //判断,若队列为空则结束,非空则将其最前的元素取出 if(judgeNull()) { System.out.println("队列为空"); return ; } front = (front+1) % maxsize; } //显示队列的元素 public void showqueue() { if(judgeNull()) { System.out.println("队列为空"); return ; } for (int i = front; i < front+count(); i++) { System.out.printf("a[%d] = %d\n",i%maxsize,a[i%maxsize]); } } //求出队列的有效个数 public int count() { return (rear+maxsize-front)%maxsize; } }
登录后复制
想学习更多java相关知识,可以访问:java入门教程
以上是java中如何实现队列的入队与出队的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处
