我正在为一门在线课程做编程作业。我提交了作业,并收到了成绩以及他们执行的测试日志。在那份日志中,我看到了这个:测试 9:在同一随机队列上创建两个嵌套迭代器n = 10 - 两个内部迭代器返回相同的项目序列 - 它们应返回相同的项目集,但顺序不同...我还看到一条类似的消息,将“嵌套”替换为“并行”。我的类迭代器的代码如下所示:public Iterator<Item> iterator() { return new RandomizedQueueIterator(); } private class RandomizedQueueIterator implements Iterator<Item> { private int start = head; public boolean hasNext() { return start < tail; } public Item next() { if (start == tail) throw new NoSuchElementException(); return a[start++]; } public void remove() { throw new UnsupportedOperationException(); } }其中 是指向队列数据结构顶部的当前元素的指针, 是队列数据结构末尾的当前元素。headtail该课程提供的代码(Sedgewick的算法I)只为我们提供了有关如何执行上述操作的信息,仅此而已。任何帮助将不胜感激。谢谢。
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
“嵌套迭代器”和“并行迭代器”不是标准术语,但我至少可以解释这一部分:
n = 10 - 两个内部迭代器返回相同的项目序列 - 它们应返回相同的项目集,但顺序不同...
这是说你的迭代器以相同的顺序给出了相同的十个项目,而他们应该以不同的顺序给出相同的十个项目。
要以错误报告的形式编写此内容,它表示您有此错误:
重现步骤:创建包含 10 个元素的 。获取两个迭代器(通过调用两次)。循环访问每个(通过重复调用和直到返回),并记录结果。
RandomizedQueue
iterator()
hasNext()
next()
hasNext()
false
预期行为:两个迭代器应给出相同的十个元素,但顺序不同(随机)。例如,一个迭代器可能给出 [1, 8, 3, 2, 6, 10, 9, 4, 7, 5],另一个迭代器可能给出 [8, 6, 3, 2, 7, 9, 10, 1, 5, 4]。
实际行为:两个迭代器以相同的顺序给出相同的元素。例如,它们都给出[1, 8, 3, 2, 6, 10, 9, 4, 7, 5]。
添加回答
举报
0/150
提交
取消