使用递归的顺序二叉树遍历与使用堆栈的优缺点
Pros/Cons of In Order Binary Tree Traversal Using Recursion vs Using a Stack
如果这是一个微不足道的问题,我很抱歉。但是我想知道使用递归函数按顺序遍历二叉树与使用显式堆栈相比有什么优点/缺点。
-
哪一个会表现得更好?
-
哪种方法在生产代码中使用得更广泛?
递归方法更容易编写,但在运行时需要花费大量时间,因为每次调用它时都会分配新变量并且需要大量内存。
非递归方法需要时间来编写,但最终非常有效。
我没有在工业界工作过,所以我不知道哪种方法被广泛使用,但它应该是非递归方法。
我一直使用递归函数来遍历树。优点它更整洁,更快地做我找到。
Which one will perform better?
据我了解,递归总是更好的性能。(或者我被我的教授引导相信)
Which approach is more widely used in production code?
在我的经验中,所有优秀的程序员总是使用递归遍历。
相关文章:
- 算法问题:查找从堆栈中弹出的所有序列
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 为什么调用堆栈数组会导致内存泄漏
- gdb错误:Backtrace已停止:上一帧与此帧相同(堆栈已损坏?)
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的 int main() 中出现堆栈溢出错误
- 堆栈和队列是否像C++中的数组一样传递?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 为什么 STL 容器适配器堆栈中的 top 返回常量引用?
- 从堆栈分配的原始指针构造智能指针
- 在函数范围内在堆栈上分配的数组在离开函数时是否总是被释放?
- 堆栈中大小变量输入错误 (C++)
- 堆栈问题(平衡表达式问题集)
- C++ 在堆栈中包含多态属性的类对象存储
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 在 C++ 中使用链表进行堆栈
- 变量周围的堆栈'...'已损坏
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- 使用递归的顺序二叉树遍历与使用堆栈的优缺点