请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)井输出。例如,当下列两棵表达式树作为算法的输入时,输出的等价中缀表达式分别为(a+b)*(c*(-d)和(a*b)+(-(c—d))。 二叉树结点定义如下:

admin2018-08-17  36

问题 请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)井输出。例如,当下列两棵表达式树作为算法的输入时,输出的等价中缀表达式分别为(a+b)*(c*(-d)和(a*b)+(-(c—d))。

二叉树结点定义如下:

请回答下列问题。
给出算法的基本设计思想。

选项

答案算法的基本设计思想 表达式树的中序序列加上必要的括号即为等价的中缀表达式。可以基于二叉树的中序遍历策略得到所需的表达式。 表达式树中分支结点所对应的子表达式的计算次序,由该分支结点所处的位置决定。为得到正确的中缀表达式,需要在生成遍历序列的同时,在适当位置增加必要的括号。显然,表达式的最外层(对应根结点)及操作数(对应叶结点)不需要添加括号。

解析
转载请注明原文地址:https://kaotiyun.com/show/TSRi777K
0

最新回复(0)