我已经给树是这样的:是否可以使用迭代器实现递归算法?
http://www.seqan.de/dddoc/html/streePreorder.png http://www.seqan.de/dddoc/html/streePreorder.png
我可以存取权限的每个节点的下一个操作。
// postorder dfs
Iterator< Index<String<char> >, BottomUp<> >::Type myIterator(myIndex);
for (; !atEnd(myIterator); goNext(myIterator))
// do something with myIterator
但我想在树上使用递归算法。
有没有办法让递归算法(排除每个节点上最大的子树)迭代?
或我如何非递归地访问元素?
编辑: 企业的实际问题:
我已经给了递归算法,即在树上的作品。 (递归)
我也使用库,我只能用迭代器访问项目(非标准,迭代)
递归< - >迭代。
我该如何解决这个问题?
你想做一个递归算法,或者你想使它不递归?这是什么? – jkeys 2009-07-29 16:45:53
他希望递归,但支持迭代器 – Hardryv 2009-07-29 16:56:02
您可以运行递归算法来生成集合,然后遍历集合。有很多理由不这样做,但对于情景而言,与其他成本相比,额外成本将较小。 – Brian 2009-07-29 16:58:54