什么时候应该使用堆栈将递归函数转换为迭代函数?

问题描述

我一直在使用迭代函数而不是递归函数来实现二进制搜索树,并注意到 我不需要为像insert()这样的函数创建堆栈 但是必须为与遍历和打印树中节点有关的功能创建一个。

我想知道何时使用堆栈将递归函数转换为迭代函数时是否有一般的经验法则。

解决方法

之所以不需要诸如insert之类的功能的堆栈,是因为您正在寻找放置值的目的地。几乎只是进行搜索。

我不确定是否需要堆栈来打印出这些值,除非它们的打印顺序很重要,但在这种情况下,您实际上是在“排序”,而不仅仅是搜索。处理多个值并对其进行排序时,需要使用堆栈。

相关问答

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