gpt4 book ai didi

java - 影响 for 循环的出队方法 (Java)

转载 作者:行者123 更新时间:2023-12-01 23:29:39 28 4
gpt4 key购买 nike

我有一个方法,其中使用了很多其他类,包括链接列表、队列和堆栈。在我的方法中,我有一个 for 循环,我想在其中弹出堆栈(方便地命名为 s)并将队列(方便地命名为 q)出队到 s1 和 q1。由于某种原因,出队使程序变得困惑,并且循环只运行了应有次数的一半。下面是一些代码来阐明这一点

    public E dequeue() {

if (manyItems == 0) {
return null;
}
SNode<E> temp = front;
front = front.getNext();
manyItems--;
return (E) temp.getElement();

}

我还想说,我在程序的早期使用整数队列测试了整个 Queue 类,它工作得很好,包括出队。我不确定出了什么问题。如果我还没有说得足够清楚,或者如果我需要提供更多代码(还有很多,我只是想包含关键部分),请告诉我。谢谢!

最佳答案

您的循环已完成一半,因为每次循环时您都会递增 j 并递减队列的大小。当队列半空时,这两个计数器交叉。

您可能想要这个:

while (q.getManyItems() > 0) {
s1 = s.pop();
q1 = q.dequeue();//***
}

如果您需要保留带有计数器的 for 循环(因为循环体中的其他内容您尚未向我们展示),请将代码更改为:

final int count = q.getManyItems();
for (int j = 0; j < count; j++) {
s1 = s.pop();
q1 = q.dequeue();//***
}

关于java - 影响 for 循环的出队方法 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531005/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com