Design patterns for converting recursive algorithms to iterative ones

fbrereto picture fbrereto · Oct 11, 2009 · Viewed 29.9k times · Source

Are there any general heuristics, tips, tricks, or common design paradigms that can be employed to convert a recursive algorithm to an iterative one? I know it can be done, I'm wondering if there are practices worth keeping in mind when doing so.

Answer

Brian picture Brian · Oct 11, 2009

You can often entirely preserve the original structure of a recursive algorithm, but avoid the stack, by employing tail calls and changing to continuation-passing, as suggested by this blog entry. (I should really cook up a better standalone example.)