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.
Search WWH ::




Custom Search