Java用数组实现循环队列的示例
作者:Struggle4L 时间:2022-06-26 15:09:48
复习了下数据结构,用Java的数组实现一下循环队列。
队列的类
//循环队列
class CirQueue{
private int QueueSize;
private int front;
private int rear;
private int[] queueList ;
public CirQueue(int QueueSize){
this.QueueSize = QueueSize;
queueList = new int[QueueSize];
front = 0;
rear = 0;
}
//获取队列头元素
public int getQueueElement(){
//如果队列不为空,返回队头元素,否则抛出异常提示队列为空
int element = -1;
if(!isEmpty()){
element = queueList[front];
return element;
}
else {
System.out.println("队列为空");
return -1;
}
}
//出队
public int deQueue(){
int element = -1;
if(!isEmpty()){
element = queueList[front];
front =(front+1)%QueueSize;
return element;
}
else {
System.out.println("队列为空");
return -1;
}
}
//入队
public void enQueue(int element){
//如果队列未满,添加元素到队尾,否则提示队列已满
if(!isFull()){
queueList[rear] = element ;
rear = (rear+1)%QueueSize;
}
else {
System.out.println("队列已满");
}
}
//判断队列是否为空
public boolean isEmpty(){
boolean b = false;
if(rear == front)
b = true;
return b;
}
//判断队列是否已满
public boolean isFull(){
boolean b = false;
if((rear+1)%QueueSize == front)
b = true;
return b;
}
}
创建对象并测试
package com.test;
import java.util.*;
public class StructTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//新建并初始化存储空间为3的循环队列(方便判断队满条件,浪费一个数组空间)
CirQueue cirQueue = new CirQueue(4);
//入队3个元素
cirQueue.enQueue(1);
cirQueue.enQueue(2);
cirQueue.enQueue(3);
//获取队头元素,获取 但不改变队列
int temp = cirQueue.getQueueElement();
System.out.println(temp);
//出队 获取队头元素,并且队头指针往后移一位
temp = cirQueue.deQueue();
System.out.println(temp);
//再次获取队头元素
temp = cirQueue.getQueueElement();
System.out.println(temp);
}
}
输出:
1
1
2
来源:http://www.cnblogs.com/Vozeen/p/7511414.html
标签:数组,循环队列,java
0
投稿
猜你喜欢
详解Java并发包中线程池ThreadPoolExecutor
2022-03-23 19:57:20
微信公众号 网页授权登录及code been used解决详解
2023-02-06 18:49:00
关于Java中BeanMap进行对象与Map的相互转换问题
2023-09-18 07:25:36
java 如何判断是否是26个英文字母
2023-11-29 15:51:59
一篇文章带你入门Java变量
2021-09-21 07:46:02
java 键盘输入一个数,输出数组中指定元素的示例
2023-11-24 20:31:14
java实现大文件分割与合并的实例代码
2023-11-11 04:31:21
java中抽象类和接口的相同和不同点介绍
2021-05-30 04:53:31
一键清除maven仓库中下载失败的jar包的实现方法
2023-08-13 03:43:59
浅谈@RequestMapping注解的注意点
2023-07-11 02:12:39
JAVA Spring中让人头痛的JAVA大事务问题要如何解决你知道吗
2023-01-14 04:58:04
Flutter之Timer实现短信验证码获取60s倒计时功能的代码
2023-07-20 20:00:30
Java Collections.shuffle()方法案例详解
2023-11-24 15:53:16
RocketMQ生产者如何规避故障Broker方式详解
2022-06-23 04:36:10
Java SoftReference类案例详解
2023-04-07 06:52:29
教你用Java GUI实现文本文件的读写
2023-05-25 06:47:13
Java 通过AQS实现数据组织
2023-04-05 22:19:29
基于JAVA文件中获取路径及WEB应用程序获取路径的方法
2022-08-21 01:26:57
理解Java中的静态绑定和动态绑定
2022-05-28 04:20:06
C#动态生成DropDownList执行失败原因分析
2023-08-30 22:37:28