当前位置: 首页 > news >正文

java 队列的数组_JAVA-循环数组实现简单的队列

public class CircularArrayQueue

{

private int[] elements;

private int head;

private int tail;

//初始化队列

public CircularArrayQueue(int initialCapacity) {

elements = new int[initialCapacity];

}

//进队列,按照队列先进先出原则,从队尾插入,e为插入的数值,队列满或操作失败抛异常IllegalStateException。

public boolean add(int e) throws IllegalStateException

{

boolean isFull = tail>head && (tail-head)%elements.length==0;

boolean isReachMaxInt = tail > elements.length && tail==Integer.MAX_VALUE;

boolean isAdded = false;

if(! isFull )

{

elements[tail%elements.length]=e;

if( isReachMaxInt )

{

tail = tail%elements.length;

head = head%elements.length;

}

tail++;

isAdded= true;

}

else

{

isAdded =false;

throw new IllegalStateException();

}

return isAdded;

}

//出队列,按照队列的先进先出原则,对头先出,队列为空或操作失败抛异常NoSuchElementException。

public int remove() throws NoSuchElementException

{

boolean isEmpty = tail==head;

int result=0;

if(! isEmpty)

{

result=elements[head%elements.length];

head++;

}

else

{

throw new NoSuchElementException();

}

return result;

}

//获取队列头数值,队列不变化

public int getQueueHeadElement() throws NoSuchElementException

{

int result = 0;

if(tail>head)

{

result=elements[head%elements.length];

}

else

{

throw new NoSuchElementException();

}

return result;

}

//获取队列尾数值,队列不变化

public int getQueueTailElement() throws NoSuchElementException

{

int result = 0;

if(tail>head)

{

result=elements[tail%elements.length-1];

}

else

{

throw new NoSuchElementException();

}

return result;

}

//获取队列长度

public int size()

{

return tail-head;

}

//查找数值value在队列中是否存在,如果存在返回true,否则返回false。

public boolean search(int value)

{

boolean isExist= false;

if(tail>head)

{

for(int index=head;index

{

if(value==elements[index%elements.length])

{

isExist=true;

break;

}

}

}

return isExist;

}

}


http://www.taodudu.cc/news/show-647757.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • java 字节取位_java位 、字节 、字符的梳理
  • jemalloc java_从源构建tensorflow遇到错误:规则'@jemalloc//:jemalloc'的C编译失败
  • laravel 调试mysql_Laravel - MySQL数据库的使用详解3(Query Builder用法2:新增、修改、删除)...
  • php mysql.x86 64_centos7.2yum安装php70w.x86_64
  • java jbutton 禁用_java – 如何禁用JButton在禁用时变灰?
  • java论文翻译_Java技术(外文文献翻译)
  • java后台接收数据格式_Java后台基于POST获取JSON格式数据
  • aes c# java_AES加密,C#和java相同
  • java原生封装_[Java教程]原生AJAX封装
  • java max sum_杭电1024 Max Sum Plus Plus状压dp(java)
  • java主线程控制子线程_CountDownLatch控制主线程等子线程执行完--Java多线程
  • mysql数据库事件不执行_如何查看mysql事件是否执行
  • 我的世界1.7.10java下载安装_我的世界1.7.10正式版
  • java编写单词数_JAVA flink小试——单词计数
  • bbs mysql_简单BBS程序(需MySQL支持)
  • java oom分析_OOM分析
  • anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
  • php抓取运动步数,使用PHP抓取微博数据
  • php 网页截屏,怎么用PHP实现网页截图
  • thread php,php中关于线程thread的使用
  • cmf php,cmf公共函数解析-common.php
  • php 实现时时更新地图,PHP实现隔15分钟自动更新网站地图功能
  • php中显示不出图像,php – 无法显示图像,因为它包含错误
  • java后台日期怎么去重,JAVA后台业务实现去重
  • php stripos 返回值,php函数stripos详解
  • java中gc的认识,java JVM GC 笔记(个人对GC 或JVM 的了解)
  • java libpcap,Linux下编译安装libpcap
  • 网页实现人脸识别PHP,奇思妙想-用HTML5进行人脸识别
  • 文件包含漏洞不能包含php,ThinkPHP5漏洞分析之文件包含
  • php对应哪个oracle版本,Oracle 版本说明