问题描述
我有点困惑。 我看到很多人说递归效率较低,但是通过使用迭代方法,我是否不必在堆中分配堆栈,这会使程序变慢?
有想法吗?
解决方法
我看到很多人说递归效率较低
这完全取决于您在树大(深度更大)时如何处理基本情况。像我这样的人,并不认为递归效率较低这一事实,而是我总是发现递归将以某种方式(IN,PRE,POST,LEVEL)为您提供遍历树的更多功能(降低计算的风险)。
我不必在堆中分配堆栈
否。
因为要迭代地打印树,您可以使用数组或某些类似的概念来设计自己的堆栈状结构。
尽管某些语言将每个对象(考虑数组是一个对象)存储在堆内存中(例如-Java)。