问题描述
我一直在使用迭代函数而不是递归函数来实现二进制搜索树,并注意到 我不需要为像insert()这样的函数创建堆栈 但是必须为与遍历和打印树中节点有关的功能创建一个。
我想知道何时使用堆栈将递归函数转换为迭代函数时是否有一般的经验法则。
解决方法
之所以不需要诸如insert之类的功能的堆栈,是因为您正在寻找放置值的目的地。几乎只是进行搜索。
我不确定是否需要堆栈来打印出这些值,除非它们的打印顺序很重要,但在这种情况下,您实际上是在“排序”,而不仅仅是搜索。处理多个值并对其进行排序时,需要使用堆栈。