我对带队列的轮询算法有疑问,我对数据结构还是陌生的。该算法应做到这一点:
(12 5 8)
和一个量子数,例如q:10
然后算法应该做到这一点:
step1: 12 5 18
step2: 5 18 2
step3: 18 2
step4: 2 8
step5: 8
step6: array is empty
如您所见,当量子数等于或大于数组的数时,我们将删除数组中的第一个数。当量子数小于我们的数量时,量子数(12-10=2)
将被添加到数组的末尾。
有人可以帮助我吗?
答案 0 :(得分:1)
欢迎使用StackOverflow!
您要:
ArrayList
(或类似名称)中quantum
quantum
课程)。只需继续操作,直到ArrayList为空。
以下是代码:
ArrayList<Integer> values = new ArrayList<Integer>();
values.add(12);
values.add(5);
values.add(18);
int quantum = 10;
int index = 0;
while (values.size() > 0) {
System.out.println(values.toString());
int value = values.remove(0);
if (value > quantum) {
values.add(value - quantum);
}
}
System.out.println("Array is empty");
这将为您提供所需的结果:
[12, 5, 18]
[5, 18, 2]
[18, 2]
[2, 8]
[8]
Array is empty