Java Reference
In-Depth Information
/
**
Array-basedqueueimplementation
*
/
classAQueue<E>implementsQueue<E>{
privatestaticfinalintdefaultSize=10;
privateintmaxSize; //Maximumsizeofqueue
privateintfront; //Indexoffrontelement
privateintrear; //Indexofrearelement
privateE[]listArray; //Arrayholdingqueueelements
/
**
Constructors
*
/
AQueue(){this(defaultSize);}
@SuppressWarnings("unchecked")//Forgenericarray
AQueue(intsize){
maxSize=size+1; //Oneextraspaceisallocated
rear=0;front=1;
listArray=(E[])newObject[maxSize];//CreatelistArray
}
/
**
Reinitialize
*
/
publicvoidclear()
{rear=0;front=1;}
/
**
Put"it"inqueue
*
/
publicvoidenqueue(Eit){
assert((rear+2)%maxSize)!=front:"Queueisfull";
rear=(rear+1)%maxSize;//Circularincrement
listArray[rear]=it;
}
/
**
Removeandreturnfrontvalue
*
/
publicEdequeue(){
assertlength()!=0:"Queueisempty";
Eit=listArray[front];
front=(front+1)%maxSize;//Circularincrement
returnit;
}
/
**
@returnFrontvalue
*
/
publicEfrontValue(){
assertlength()!=0:"Queueisempty";
returnlistArray[front];
}
/
**
@returnQueuesize
*
/
publicintlength()
{return((rear+maxSize)-front+1)%maxSize;}
Figure4.27
An array-based queue implementation.