一,逆波兰表达式的定义
什么是逆波兰表达式。可能很多人会有一个疑问,这里举个例子说明一下,对于(1-2)*(4+5)这个表达式的结果,我相信很多人就异口同声地说出来肯定是-9,但是对于机器语言是怎样实现的。这个时候机器语言就需要一定的规则和复杂性来解决这个问题。波兰逻辑学家发明了一种不需要括号的后缀表达式,我们通常称之为逆波兰表达式(RPN)。
对于(1-2)*(4+5)来说,如果用逆波兰表示法,应该是这样:1 2 - 4 5 + * 。逆波兰表示法也成为后缀表达法。
正常的表达式转换为逆波兰表达式举例如下:
a + b ----> a b +
a+(b-c) -----> a b c - +
a+(b-c)*d -----> a b c - d * +
a+d*(b-c) ------> a d b c - * +
二,分析
图1 第一步操作(1-2)的实现
在图1中可以看到&