Java用数组实现循环队列的示例
复习了下数据结构,用Java的数组实现一下循环队列。
队列的类
//循环队列
classCirQueue{
privateintQueueSize;
privateintfront;
privateintrear;
privateint[]queueList;
publicCirQueue(intQueueSize){
this.QueueSize=QueueSize;
queueList=newint[QueueSize];
front=0;
rear=0;
}
//获取队列头元素
publicintgetQueueElement(){
//如果队列不为空,返回队头元素,否则抛出异常提示队列为空
intelement=-1;
if(!isEmpty()){
element=queueList[front];
returnelement;
}
else{
System.out.println("队列为空");
return-1;
}
}
//出队
publicintdeQueue(){
intelement=-1;
if(!isEmpty()){
element=queueList[front];
front=(front+1)%QueueSize;
returnelement;
}
else{
System.out.println("队列为空");
return-1;
}
}
//入队
publicvoidenQueue(intelement){
//如果队列未满,添加元素到队尾,否则提示队列已满
if(!isFull()){
queueList[rear]=element;
rear=(rear+1)%QueueSize;
}
else{
System.out.println("队列已满");
}
}
//判断队列是否为空
publicbooleanisEmpty(){
booleanb=false;
if(rear==front)
b=true;
returnb;
}
//判断队列是否已满
publicbooleanisFull(){
booleanb=false;
if((rear+1)%QueueSize==front)
b=true;
returnb;
}
}
创建对象并测试
packagecom.test;
importjava.util.*;
publicclassStructTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//新建并初始化存储空间为3的循环队列(方便判断队满条件,浪费一个数组空间)
CirQueuecirQueue=newCirQueue(4);
//入队3个元素
cirQueue.enQueue(1);
cirQueue.enQueue(2);
cirQueue.enQueue(3);
//获取队头元素,获取但不改变队列
inttemp=cirQueue.getQueueElement();
System.out.println(temp);
//出队获取队头元素,并且队头指针往后移一位
temp=cirQueue.deQueue();
System.out.println(temp);
//再次获取队头元素
temp=cirQueue.getQueueElement();
System.out.println(temp);
}
}
输出:
1 1 2
以上这篇Java用数组实现循环队列的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。