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用数组实现循环队列的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。