大佬教程收集整理的这篇文章主要介绍了队列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class ArrayQueue{
privatE int maxSize;
privatE int front;
privatE int rear;
privatE int[] arr;
public ArrayQueue(int arrMaxSizE){
maxSize = arrMaxSize;
arr = new int[maxSize];
front = -1; //这里自定义的,但是含义要明白:front指向的是第一个数据的前一个位置
rear = -1; //rear指向的是最后一个数据
}
public Boolean isEmpty(){
return front == rear;
}
public Boolean isFull(){
return rear == maxSize-1;
}
public voID addQueue(int num){
if (isFull()){
System.out.println("队列已满");
return;
}
rear++;
arr[rear] = num;
}
public int deleteQueue(){
if (isEmpty()){
System.out.println("队列为空");
}
front++;
return arr[front];
}
public voID showQueue(){
if (isEmpty()){
System.out.println("队列为空");
return;
}
for (int i = 0; i < arr.length; i++) {
System.out.printf("arr[%d]=%d\n",i,arr[i]);
}//这里用foreach就不能得到第几了
}
}
首先,需要将条形的数组,看做是环形的循环的数组
然后,对front和rear的含义重新定义
队列为满是的判断条件是:(rear+1) % maxSize == front
队列为空的判断条件是:rear == front
有效的数据个数为:(rear - front + maxSizE) % maxSize
以上是大佬教程为你收集整理的队列全部内容,希望文章能够帮你解决队列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。