你能告诉我是我理解错了还是例子错了?
我将在运算符之后立即编写关联性。'r' 代表右,'l' 代表左。表达式不会有括号。
-r *r 8 5 +r /r 20 4 /l *r 5 8 10
给出的结果是这样的:
8 5 *r 20 4 /r 5 8 *r 10 /l +r -r
我不明白的是,当我5 8 10
此时到达我的堆栈时会是*r /l +r -r
。我读了5,它不是运算符,所以我打印它。我读的是 8,而不是运算符-> 打印。然后我读了 10,而不是运算符 -> 打印。为什么 *r 在读取 10 之前会从堆栈中弹出?