![](/img/trans.png)
[英]Changing the recursive insertion of the (binary Search tree) to non-recursive?
[英]non-recursive method for evaluating a binary tree representing an arithmetic expression
正如主题所述,我需要描述一种不使用递归来评估二进制算术表达式树的方法。 没有给我任何其他细节或说明。
至于我对这些事情的理解,我需要模拟树的顺序遍历。 假设我的教科书中概述了ADT方法的可用性,我有hasLeft()
, hasRight()
, left()
, right()
, isInternal()
和isExternal()
方法。 我需要问我的教授我是否可以创建自己的方法,但是没有使用parent()
方法,所以我可以遍历树。 虽然,我有一个root()
方法。
有人可能会指出我正确的方向来弄清楚如何做到这一点? 我没有想到没有递归的方法,因为我没有立即跳回树的方法。
您可以保留已经访问过的一堆节点。 然后通过将新节点推入堆栈来替换递归调用,并从堆栈中弹出一个返回递归函数的节点。
请记住,在执行递归函数时,总会有一个隐式堆栈记住每个函数调用中传递的参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.