当打印出树中的所有节点时,递归或迭代是否更有效?

问题描述

我有点困惑。 我看到很多人说递归效率较低,但是通过使用迭代方法,我是否不必在堆中分配堆栈,这会使程序变慢?

有想法吗?

解决方法

我看到很多人说递归效率较低

这完全取决于您在树大(深度更大)时如何处理基本情况。像我这样的人,并不认为递归效率较低这一事实,而是我总是发现递归将以某种方式(IN,PRE,POST,LEVEL)为您提供遍历树的更多功能(降低计算的风险)。

我不必在堆中分配堆栈

否。

因为要迭代地打印树,您可以使用数组或某些类似的概念来设计自己的堆栈状结构。

尽管某些语言将每个对象(考虑数组是一个对象)存储在堆内存中(例如-Java)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...