【发布时间】:2015-05-17 15:58:43
【问题描述】:
我遇到了许多需要迭代器的问题。通常,它们是简单的东西,您已经拥有可以遵循的基础数据结构。其他时候,它会变得更复杂。
一个例子是使用中序遍历遍历没有父链接的 BST。这要求您执行以下操作:
- 在构造函数中创建堆栈。
- 迭代到最左边的节点。
- 存储有更多节点可以访问,以便从 hasNext() 轻松返回。
- 存储下一个要访问的节点,以便从 next() 轻松返回。
您可以在 hasNext() 或 next() 中定位下一个节点。您还可以在构造函数或第一次调用 hasNext() 时定位第一个节点。
我的问题
对于在迭代器实现中的大部分工作,是否有标准或最佳实践?一种方式比另一种方式“更干净”吗?
【问题讨论】: