队列是一种特殊的线性表,只允许在表的前端进行删除操作,只允许在表的后端进行插入操作。
队列的常用操作:
初始化:
返回队列的长度:
加入元素:
移除元素:
访问队列的前端元素:
判断队列是否为空:
清空队列:
package MyJava2;
import java.util.Arrays;
public class SequenceQueue {
private int DEFAULT_SIZE=10;
private int capacity;
private String[] elements;
//保存队列的元素个数
private int front=0;
private int rear=0;
public SequenceQueue(){
capacity=DEFAULT_SIZE;
elements=new String[capacity];
}
public SequenceQueue(String data){
capacity=DEFAULT_SIZE;
elements=new String[capacity];
elements[0]=data;
rear++;
}
public SequenceQueue(String data,int inational){
capacity=inational;
elements=new String[capacity];
elements[0]=data;
rear++;
}
public int len(){
return rear-front;
}
public void add(String data){//插入队列
if(rear>capacity-1){
throw new IndexOutOfBoundsException("OutOfIndex");
}
elements[rear++]=data;
}
public String remove(){//移除队列
if(empty()){
throw new IndexOutOfBoundsException("null");
}
String old=elements[front];
elements[front++]=null;
return old;
}
public String getFront(){//返回队列元素但不删除
if(empty()){
throw new IndexOutOfBoundsException("null");
}
return elements[front];
}
public boolean empty() {
return rear==front;
}
public void clear(){
Arrays.fill(elements,null);
front=0;
rear=0;
}
public String toString(){
StringBuffer sb=new StringBuffer();
for(int i=front;i<rear;i++){
sb.append(elements[i].toString()+",");
}
return sb.toString();
}
public static void main(String[] args) {
SequenceQueue queue=new SequenceQueue("1",3);
queue.add("2");
queue.add("3");
System.out.println(queue.toString());
System.out.println(queue.remove());
System.out.println(queue.getFront());
}
}