标签:io ar java for 数据 on as size new
package queue.sequencequeue;
/**
* 队列的定义:队列是只允许在一端进行插入操作,而在另外一端进行删除操作的线性表
* 队列是一种先进先出(First In First Out)的线性表,简称FIFO,允许插
* 入的一端称为队尾,允许删除的一端称为队头
* @author wl
*
*/
public class SequenceQueue {
private Object[] elementData;//用数组来保存队列的元素
private int front;//队列的头指针
private int rear;//队列的尾指针
//无参构造函数
public SequenceQueue(){
elementData=new Object[10];
front=0;
rear=0;
}
//带参构造函数,指定数组的初始化长度
public SequenceQueue(int capacity){
elementData=new Object[capacity];
front=0;
rear=0;
}
//队列的大小
public int size(){
return rear-front;
}
//判断队列是否为空
public boolean isEmpty(){
int size=size();
return size==0;
}
//判断队列是否已满
public boolean isFull(){
int size=size();
return size==elementData.length;
}
//入队列
public void enQueue(int data){
if(isFull()){
throw new IndexOutOfBoundsException("队列已满");
}
elementData[rear++]=data;
}
//出队列
public Object deQueue(){
if(isEmpty()){
throw new IndexOutOfBoundsException("队列为空");
}
//得到对头元素
Object data=elementData[front];
//释放对头元素
elementData[front++]=null;
return data;
}
//得到对头元素,不删除
public Object getFront(){
if(isEmpty()){
return null;
}else{
return elementData[front];
}
}
//打印队列中的元素
public void traverse(){
if(isEmpty()){
System.out.println("null");
}else{
for(int i=front;i<rear;i++){
System.out.print(elementData[i]+" ");
}
}
System.out.println();
}
}
Java数据结构系列之——队列(1):队列的顺序存储结构及其实现
标签:io ar java for 数据 on as size new
原文地址:http://blog.csdn.net/tmwl0728/article/details/41397331