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
投稿
猜你喜欢
C#开发中的垃圾回收机制简析
2022-08-06 14:10:56
Java 函数编程详细介绍
2022-07-18 14:31:15
Java字符判断的小例子
2023-08-26 17:29:49
C语言中的数据整除判断问题
2023-08-28 20:36:09
Android资源文件与层次式导航超详细讲解
2022-07-14 16:28:22
java语法糖之jdk迭代的新特性汇总
2022-07-09 10:05:19
SSH原理及两种登录方法图文详解
2023-11-14 11:10:53
入门JDK集合之HashMap解析
2023-11-24 02:45:03
c# 抓取Web网页数据分析
2022-11-10 06:44:57
Android WebView实现截长图功能
2023-07-06 16:11:05
Spring IOC创建对象的两种方式
2023-09-10 15:58:27
C#实现创建,删除,查找,配置虚拟目录实例详解
2022-09-27 06:38:16
关于async和await的一些误区实例详解
2022-09-22 22:57:29
Android实现整理PackageManager获取所有安装程序信息
2022-11-20 15:13:01
java通过Jsoup爬取网页过程详解
2021-12-20 03:24:10
详解SpringBoot程序启动时执行初始化代码
2022-05-07 13:36:05
Android自定义控件之电话拨打小键盘
2022-11-17 21:52:08
Java继承的问题引导和测试代码
2023-03-13 18:50:34
详解C# 反射(Reflection)
2021-09-08 14:42:59
Java开发实现猜拳游戏
2023-09-27 03:21:46