我已經給樹是這樣的:是否可以使用迭代器實現遞歸算法?
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