注册 登录
编程论坛 数据结构与算法

关于栈后缀表达式(白地问题)

kinghao 发布于 2010-10-26 20:26, 633 次点击
不太明白后缀表达式的实现跟中缀有什么差别?比如1+2*(3+4)跟+1*2+34和1234+*+有什么区别在算法上?
是运算符栈跟运算数栈,比较运算符优先级,前缀后缀中缀有什么区别吗?谢谢各位大虾~~
1 回复
#2
诸葛修勤2010-10-28 18:16
栈只是一种工具 重在理解原理
表达式求值a-((b-c/d)*e)
前缀表达式:运算符在两操作数的前面  先找操作数
a-((b-c/d)*e)
-a((b-c/d)*e)
-a*(b-c/d)e
-a*-b(c/d)e
-a*-b/cde

中缀表达式:运算符在两操作数的中间
后缀表达式:运算符在两操作数的后面  先找操作符
a-((b-c/d)*e)
a((b-c/d)*e)-
a(b-c/d)e*-
ab(c/d)-e*-
abcd/-e*-

采用树结构 分别 对应树中 的三种遍历
1