打印出树中的所有节点时,递归或迭代效率更高吗?
When printing out all nodes in a tree, is recursion or iteration more efficient?
我有点困惑。
我看到很多人说递归效率较低,但是通过使用迭代方法,我是否必须在堆中分配我的堆栈,这会使我的程序变慢?
想法?
I see many people saying recursion is less efficient
这完全取决于您如何处理 base-case 当树很大(深度更大)时。像我这样的人,不会考虑递归效率较低的事实,而是我总是发现递归会给你更多的权力(更少的计算风险)以某种方式遍历树(IN,PRE,POST,LEVEL)。
wouldn't I have to allocate my stack in the heap
没有。
因为,要迭代打印树,您可以设计自己的 stack-like 结构,使用数组或一些类似的时尚概念。
尽管某些语言将每个对象(考虑到数组是一个对象)存储在 heap-memory 中(例如 - Java)。
我有点困惑。 我看到很多人说递归效率较低,但是通过使用迭代方法,我是否必须在堆中分配我的堆栈,这会使我的程序变慢?
想法?
I see many people saying recursion is less efficient
这完全取决于您如何处理 base-case 当树很大(深度更大)时。像我这样的人,不会考虑递归效率较低的事实,而是我总是发现递归会给你更多的权力(更少的计算风险)以某种方式遍历树(IN,PRE,POST,LEVEL)。
wouldn't I have to allocate my stack in the heap
没有。
因为,要迭代打印树,您可以设计自己的 stack-like 结构,使用数组或一些类似的时尚概念。
尽管某些语言将每个对象(考虑到数组是一个对象)存储在 heap-memory 中(例如 - Java)。