繁体   English   中英

用于评估表示算术表达式的二叉树的非递归方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM