我想在数据结构上有一个迭代器。现在我不知道数据结构是什么,也许它是一个 DAG(有向无环图),但也许它也可能是一个链表。所以我想把它包装成一个迭代器,现在不要考虑特定的数据结构。
我知道如何使用类似递归的访问者来访问 DAG,但我无法找出一个简单而干净的结构来实现迭代器方法next()
和hasNext()
.
在迭代器内部,我创建了一个当前节点实例,并使用 for 循环遍历所有子节点,然后返回父节点。需要一个“已访问”标志。所以我DagElement
有这些更多的属性:
DagElement parent
boolean alreadyVisited
我不认为这是一个干净的解决方案。
有什么建议吗?