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
  • asp之家 软件编程 m.aspxhome.com