Java Reference
In-Depth Information
/
**
Linkedqueueimplementation
*
/
classLQueue<E>implementsQueue<E>{
privateLink<E>front; //Pointertofrontqueuenode
privateLink<E>rear; //Pointertorearqueuenode
intsize; //Numberofelementsinqueue
/
**
Constructors
*
/
publicLQueue(){init();}
publicLQueue(intsize){init();}//Ignoresize
/
**
Initializequeue
*
/
privatevoidinit(){
front=rear=newLink<E>(null);
size=0;
}
/
**
Reinitializequeue
*
/
publicvoidclear(){init();}
/
**
Putelementonrear
*
/
publicvoidenqueue(Eit){
rear.setNext(newLink<E>(it,null));
rear=rear.next();
size++;
}
/
**
Removeandreturnelementfromfront
*
/
publicEdequeue(){
assertsize!=0:"Queueisempty";
Eit=front.next().element();//Storedequeuedvalue
front.setNext(front.next().next());//Advancefront
if(front.next()==null)rear=front;//LastObject
size--;
returnit;
//ReturnObject
}
/
**
@returnFrontelement
*
/
publicEfrontValue(){
assertsize!=0:"Queueisempty";
returnfront.next().element();
}
/
**
@returnQueuesize
*
/
publicintlength(){returnsize;}
Figure4.28
Linked queue class implementation.