C语言前缀和

传送门:https://blog.csdn.net/Lyt15829797751/article/details/77572129
前缀和后缀是什么呢? 举个例子: +34 3+4 34+
前缀 中缀 后缀
也称为: 波兰式 逆波兰式
--------------------- 那就以 X=A+B*(C-D)/E 为例: 先转换成前缀表达式
第一步:先加括号:(X=(A + ( ( (B*(C-D) ) ) / E ) ) )
第二步:在要计算那一步,先取出运算符,放到这一步括号的前面,就OK了
1:先计算(C-D) 那就变成了 -(CD)
2:接着 (B*(C-D)) * (B-(CD))
3:接着算除以E
((B*(C-D))/E) /( * (B-(CD)) E)
4: 接着
(A + ( ( (B*(C-D) ) ) / E ) ) +(A/( * (B-(CD)) E))
5: 最后
(X=(A + ( ( (B*(C-D) ) ) / E ) ) ) =(X+(A/( * (B-(CD)) E)))
第三步:去掉所有的括号

X=A+B*(C-D)/E 前缀表达式是:=X+A/B-CDE
转换成后缀表达式(与前缀的方法是一样的)
第一步:先加括号:(X=(A + ( ( (B
(C-D) ) ) / E ) ) )
第二步:在要计算那一步,先取出运算符,放到这一步括号的后面,就OK了
1:先计算(C-D) 那就变成了 (CD)-
2:接着 (B*(C-D)) B ((CD)-)*
3:接着算除以E ((B(CD)-)*)E)/
*4: (A + ( ( (B(C-D) ) ) / E ) ) (A(B((CD)-)E)/)+
5: (X=(A + ( ( (B
(C-D) ) ) / E ) ) ) (X(A(B((CD)-)E)/)+)=
第三步:去掉所有括号
X=A+B
(C-D)/E 后缀表达式是: XABCD-*E/+=

你可能感兴趣的:(骚操作算法)