逆波兰表达式转换
输入输出理由(A-B)*(C+D)+E空
A-B)*(C+D)+E空
-B)*(C+D)+E A操作数
B)*(C+D)+E A
)*(C+D)+E AB操作数
*(C+D)+E AB-
(C+D)+E AB-
C+D)+E AB-
+D)+E AB-C操作数
D)+E AB-C
)+E AB-CD操作数
+E AB-CD+
E AB-CD+*
空AB-CD+*E操作数
空AB-CD+*E
输入输出理由(A*B)+(C*D)+E空
A*B)+(C*D)+E空
*B)+(C*D)+E A操作数
B)+(C*D)+E A
)+(C*D)+E AB操作数
+(C*D)+E AB*
(C*D)+E AB*
C*D)+E AB*
*D)+E AB*C
D)+E AB*C
)+E AB*CD
+E AB*CD*
E AB*CD*+
空AB*CD*+E
空AB*CD*+E+
输入输出理由(A-B)*(((C-D*E)/F)/G)*H空
A-B)*(((C-D*E)/F)/G)*H空
-B)*(((C-D*E)/F)/G)*H A操作数B)*(((C-D*E)/F)/G)*H A
)*(((C-D*E)/F)/G)*H AB
*(((C-D*E)/F)/G)*H AB-
(((C-D*E)/F)/G)*H AB-
((C-D*E)/F)/G)*H AB-
(C-D*E)/F)/G)*H AB-
C-D*E)/F)/G)*H AB-
-D*E)/F)/G)*H AB-C
D*E)/F)/G)*H AB-C
*E)/F)/G)*H AB-CD操作数D
E)/F)/G)*H AB-CD
)/F)/G)*H AB-CDE操作数E
/F)/G)*H AB-CDE*-
F)/G)*H AB-CDE*-
)/G)*H AB-CDE*-F操作数F
/G)*H AB-CDE*-F/
G)*H AB-CDE*-F/
)*H AB-CDE*-F/G操作数G
*H AB-CDE*-F/G/
H AB-CDE*-F/G/*
空AB-CDE*-F/G/*H
空AB-CDE*-F/G/*H*
堆栈内容(右边为栈顶)
空
(
(
(-
(-
空
*
*(
*(
*(+
*(+
*
+
+
空
堆栈内容(右边为栈顶)
空
(
(
(*
(*
空
+
+(
+(
+(*
+(*
+
+
+
空
堆栈内容(右边为栈顶)
空
(
(
(-
(-
空
*
*(
*((*(((*(((*(((-*(((-*(((-* *(((-* *((*((/ *((/
*(
*(/
*(/
*
*
*
空
理由
若它是一个闭括号(右括号),则弹出操作符到输出,直到遇到一个开括号。弹出并丢弃该开括号。当前运算符“+”低于栈顶运算符“*”
理由
若它是一个闭括号(右括号),则弹出操作符到输出,直到遇到一个开括号。弹出并丢弃该开括号。运算符优先级相同
若它是一个闭括号(右括号),则弹出操作符到输出,直到遇到一个开括号。弹出并丢弃该开括
若它是一个闭括号(右括号),则弹出操作符到输出,直到遇到一个开括号。弹出并丢弃该开括
操作符“/”
若它是一个闭括号(右括号),则弹出操作符到输出,直到遇到一个开括号。弹出并丢弃该开括号。运算符优先级相同,弹出栈顶运算符,并把当前运算符压入堆栈
该开括号。出并丢弃该开括号。
该开括号。出并丢弃该开括号。