loopqueue
import java.util.Arrays;
public class loopQueue <E>{
public Object[] data=null;
private int maxsize;
private int rear;//队尾
private int front;//
private int size=0;
public loopQueue(){
}
public loopQueue(int initsize){
if(initsize>0){
this.maxsize=initsize;
data=new Object[initsize];
rear=front=0;
}
else{
throw new RuntimeException("初始化大小不能小于0");
}
}
//
public boolean isempty(){
return size==0;
}
//insert
public boolean add(E e){
if(size==maxsize){
throw new RuntimeException("the queue is full");
}
else{
data[rear]=e;
rear=(rear+1)%maxsize;
size++;
return true;
}
}
//返回队首元素
public E peek(){
if(isempty()){
throw new RuntimeException("this queue is empty");
}
else{
return (E)data[front];
}
}
//output
public E poll(){
if(isempty()){
throw new RuntimeException("this queue is empty");
}
else{
E e=(E)data[front];
data[front]=null;
front=(front+1)%maxsize;
size--;
return e;
}
}
//
public int getsize(){
return size;
}
//
public void clear(){
Arrays.fill(data, null);
size=0;
front=0;
rear=0;
}
}
loopqueue的更多相关文章
- JavaScript LoopQueue
function Queue() { var items = []; this.enqueue = function(element) { items.push(element) } this.deq ...
- 数据结构图文解析之:队列详解与C++模板实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- java 实现数据结构之队列
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入操作. 1.队列的顺序存储结构及实现 public class SequenceQueue&l ...
- java_queue
队列是一种特殊的线性表,先进先出(first in first out)FIFO,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入操作. 实际应用:排队等待公交车,银 ...
- Java数据结构之线性表(2)
从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...
- Java三种方式实现栈和队列
栈:LIFO(后进先出) 队列:FIFO(先进先出) 1.栈:LIFO(后进先出) 1.1.栈的顺序存储结构实现: /** * 基于数组实现的顺序栈 * @param <E> */ pub ...
- Java的数组,栈,队列
import java.util.Arrays; public class Array<E> { private E[] data; private int size; //构造函数,传入 ...
- js 实现数据结构 -- 队列
原文: 在 Javascript 中学习数据结构与算法. 概念: 与栈相反,队列是一种遵循先进先出 (FIFO / First In First Out) 原则的一组有序的项:队列在尾部添加新元素,并 ...
- <数据结构基础学习>(三)Part 2 队列
一.队列 Queue 队列也是一种线性结构 相比数组,队列对应的操作是数组的子集 只能从一端(队尾)添加元素,只能从另一端(队首)取出元素. (排队) 队列是一种先进先出的数据结构(先到先得)FIFO ...
随机推荐
- Loadrunder之脚本篇——参数化同行取值
select next row 记录选择方式 Same line as,这个选项只有当参数多余一个时才会出现,其作用是根据某一个参数的行号取同一行. 例中的做法如下: 将多个参数存放在一个参数文件中: ...
- iOS KVC 和 KVO 的学习
KVC (NSKey Value Coding) :键值编码 KVO (Key Value Observing) :键值监听 前言:我曾经用过 监听 一个音频何时结束 监听视频播放 状态等 用了这种 ...
- 转:C语言嵌入式系统编程之软件架构篇
http://blog.csdn.net/ce123_zhouwei/article/details/6978672
- 【Tech】Mac上安装MAMP打开本地网页
不知道为什么实验室老是用些奇葩的东西,这次是madserve,主要是用来统计移动端广告点击率的,基于PHP/MYSQL实现. 昨天很快在Windows上搭好一个xampp,并用它建立了一个virtua ...
- Delphi中ComPort通信中的数据处理
源: Delphi中ComPort通信中的数据处理
- qnx 黑莓系统
qnx 黑莓图形系统框架 http://www.360doc.com/content/07/0807/10/38907_658192.shtml http://blog.csdn.net/keyboa ...
- oracle创建表空间 扩展表空间文件 修改表空间自动增长
1. 创建表空间 create tablespace SIRM2 datafile 'D:\oracle\product\10.2.0\oradata\orcl\SIRM2.dbf' size 10 ...
- Python的operator.itemgetter函数和sorted函数
写这篇文章的目的是之前在<机器学习实战>用Python3实现KNN算法时用到的几个函数不太懂, 地址: 1- https://github.com/hitergelei/Self-Lear ...
- tree 命令【转】
本文转载自:http://www.jb51.net/LINUXjishu/283874.html linux下怎么用tree命令以树形结构显示文件目录结构?tree命令可以以树形结构显示文件目录结构, ...
- Linux操作系统的安装以及基本的操作命令详解
背景:使用的虚拟机安装Linux 虚拟机使用的是VMware Linux版本:CentOS-6.7-X86 自行下载:CentOS-6.7-x86_64-bin-DVD1.iso 打开VMw ...