Java用数组实现循环队列的示例

发布时间 - 2026-01-11 03:13:53    点击率:

复习了下数据结构,用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

以上这篇Java用数组实现循环队列的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# 数组实现循环队列  # Java基础之数组模拟循环队列  # Java 1.8使用数组实现循环队列  # 基于Java数组实现循环队列的两种方法小结  # java数据结构与算法之双向循环队列的数组实现方法  # java数组实现循环队列示例介绍  # 为空  # 已满  # 给大家  # 数据结构  # 希望能  # 这篇  # 但不  # 抛出  # 小编  # 未满  # 大家多多  # getQueueElement  # temp  # public  # rear  # queueList  # cirQueue  # System  # println  # return 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何在Windows服务器上快速搭建网站?  如何用VPS主机快速搭建个人网站?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  大同网页,大同瑞慈医院官网?  lovemo网页版地址 lovemo官网手机登录  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  在线制作视频网站免费,都有哪些好的动漫网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  大连 网站制作,大连天途有线官网?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Swift中循环语句中的转移语句 break 和 continue  Laravel怎么在Blade中安全地输出原始HTML内容  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  油猴 教程,油猴搜脚本为什么会网页无法显示?  Laravel如何处理异常和错误?(Handler示例)  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  如何注册花生壳免费域名并搭建个人网站?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Python进程池调度策略_任务分发说明【指导】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  个人网站制作流程图片大全,个人网站如何注销?  如何在云服务器上快速搭建个人网站?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  EditPlus中的正则表达式 实战(2)  如何快速搭建安全的FTP站点?  如何为不同团队 ID 动态生成多个非值班状态按钮  实例解析angularjs的filter过滤器  Android Socket接口实现即时通讯实例代码  大学网站设计制作软件有哪些,如何将网站制作成自己app?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  图册素材网站设计制作软件,图册的导出方式有几种?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  如何在阿里云高效完成企业建站全流程?  高端云建站费用究竟需要多少预算?