写出a*(b*c-d)+e的后缀表达式,顺便简要分析一下,谢谢!

2025-02-28 13:40:22
推荐回答(3个)
回答1:

有个简单规范的转换方法:
1、将运算按优先级全部用括号限定清楚,例如上题表达为: ((a* ( (b*c) - d))+e)
2、将每个括号中的运算符移动到括号尾部(即两个运算对象的后面):((a((bc*)d-)*)e+)
3、去掉括号,就得到了后缀表达式啦:abc*d-*e+

在转换过程中,首先按运算优先级做了严格限定,再把运算符移动到运算对象的后面,
自然正好满足后缀表达的需求啦。

回答2:

abc*d-*e+
先把常规表达是按运算顺序写成二叉树形式(运算数为叶节点,运算符为中间节点),则常规表达式为中根遍历,后缀表达式为后根遍历,前缀表达式为先根遍历。

回答3:

abc*d-*e+