编程论坛
注册
登录
编程论坛
→
数据结构与算法
关于栈后缀表达式(白地问题)
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