【发布时间】:2012-10-15 16:36:27
【问题描述】:
我正在尝试实现一个没有计数变量的循环数组队列。
我正在寻找一种方法来确定数组是否已满,以便它调用 expand 方法,但它似乎不知道为什么?谢谢!
public void enqueue (T element) {
if(front != (rear+1) % queue.length) {
queue[rear] = element;
rear = (rear+1) % queue.length;
}
else
expandCapacity();
}
public void expandCapacity() {
T[] larger = ((T[]) (new Object[queue.length * 2]));
for (int scan=0; scan < queue.length; scan++) {
larger[scan] = queue[front];
front = (front+1) % queue.length;
}
front = 0;
rear = queue.length;
queue = larger;
}
【问题讨论】:
-
我正在处理的项目的一小部分是的,但是我在实现队列时遇到了问题。
-
那么前后端的初始值是什么以及 queue.length 是如何工作的?
-
前后端初始值为零,queue.length = 我使用的数组的大小
-
当您说“它似乎不起作用”时,究竟是什么问题?
-
如果输入文件大于数组则不展开
标签: java arrays data-structures queue circular-buffer