package com.function.demo_02;
/**
* @author OF
* 2015年1月1日
* 数据结构---对列
* 先进先出
*/
public class Queue {
private long [] arr;
private int maxSize;
private int elems;
private int start;
private int end;
//默认构造方法指定数组长度
public Queue(int max) {
this.maxSize = max;
this.arr = new long[maxSize];
this.elems=0;
this.start =0;
this.end=-1;
}
//插入 队列
public void insetr(long [] value){
for(int i = 0 ;i< value.length;i++){
if(end == maxSize-1){
end = -1;
}
arr[++end]=value[i];
elems++;
}
}
//移除数据
public long remove(){
long temp =0L;
temp =arr[start++];
elems--;
if(start == 0){
return -1;
}
if(start == maxSize){
start=0;
//数组插入超过长度不会发生错误
if(elems == 1){
elems=0;
}
}
return temp;
}
//是否为空
public boolean isEmpty(){
return elems==0;
}
//对列长度是否已满
public boolean isFull(){
return elems==maxSize;
}
}
/**
* @author OF
* 2015年1月1日
* 数据结构---对列
* 先进先出
*/
public class Queue {
private long [] arr;
private int maxSize;
private int elems;
private int start;
private int end;
//默认构造方法指定数组长度
public Queue(int max) {
this.maxSize = max;
this.arr = new long[maxSize];
this.elems=0;
this.start =0;
this.end=-1;
}
//插入 队列
public void insetr(long [] value){
for(int i = 0 ;i< value.length;i++){
if(end == maxSize-1){
end = -1;
}
arr[++end]=value[i];
elems++;
}
}
//移除数据
public long remove(){
long temp =0L;
temp =arr[start++];
elems--;
if(start == 0){
return -1;
}
if(start == maxSize){
start=0;
//数组插入超过长度不会发生错误
if(elems == 1){
elems=0;
}
}
return temp;
}
//是否为空
public boolean isEmpty(){
return elems==0;
}
//对列长度是否已满
public boolean isFull(){
return elems==maxSize;
}
}