什么时候应该使用堆栈将递归函数转换为迭代函数?
When should I use a stack to convert a recursive function into an iterative one?
我一直致力于使用迭代函数而不是递归函数来实现二叉搜索树,并注意到
我不需要为像 insert() 这样的函数创建一个堆栈
但是必须为与遍历和打印出树中的节点相关的功能创建一个。
我想知道是否有关于何时使用堆栈将递归函数转换为迭代函数的一般经验法则。
为什么像插入这样的函数不需要堆栈的原因是因为您正在寻找放置值的目的地。几乎只是在搜索。
我不确定您是否需要堆栈来打印这些值,除非它们的打印顺序很重要,但在那种情况下您实际上是 'sorting' 而不仅仅是搜索。处理多个值并对其排序时需要使用堆栈。
我一直致力于使用迭代函数而不是递归函数来实现二叉搜索树,并注意到 我不需要为像 insert() 这样的函数创建一个堆栈 但是必须为与遍历和打印出树中的节点相关的功能创建一个。
我想知道是否有关于何时使用堆栈将递归函数转换为迭代函数的一般经验法则。
为什么像插入这样的函数不需要堆栈的原因是因为您正在寻找放置值的目的地。几乎只是在搜索。
我不确定您是否需要堆栈来打印这些值,除非它们的打印顺序很重要,但在那种情况下您实际上是 'sorting' 而不仅仅是搜索。处理多个值并对其排序时需要使用堆栈。