懒惰的迭代器图

时间:2016-03-27 13:06:37

标签: java graph iterator traversal tree-traversal

我正在为自己的Graph Iterator实现hasNext()函数。我的遍历必须是广度优先的。

班级GIterator的变量: Graph gVertex beginVSet<Vertex> discovered(已经使用我们的迭代器迭代的顶点被添加到已发现的内容中。)

如何测试hasNext()函数的简单示例:

ImplGraph graph = new ImplGraph();
Vertex vertex = new ImplVertex(0);
graph.addVertex(vertex);

Iterator<Vertex> it = new GIterator(graph, vertex);

assertTrue(it.hasNext());
assertSame(vertex, it.next());
assertFalse(it.hasNext());

我试过了:

@Override
public boolean hasNext() {
   return !(graph.getNeighbours(beginV).isEmpty());
}

如果开始顶点有任何邻居,则返回true,即graph具有下一个顶点。但显然这只适用于开始顶点,如果我的懒惰迭代器移动到另一个顶点,我将需要检查是否有任何邻居。

我的案例中的Graph类包含函数getNeighboursgetAllVertices

我已经被困了一段时间了,有什么想法吗?

0 个答案:

没有答案