算符优先算法
1.数据栈,算符栈,算符优先关系表
2.#⼊算符栈,扫描输⼊串#
3.循环: 遇到数值,则⼊数据栈;
遇到算符,则算符栈顶,与当前算符,查表:
<,算符⼊栈;
=,作相应处理:( )去括号;# #,分析结束,跳出循环;
>,栈顶算符弹出,数据栈弹出相应数值,计算,结果⼊栈;
⽆表项值,输⼊串错误。
4.# #相遇,分析完毕,最终结果在数据栈,唯⼀值,在栈顶。
整个项目资源见我主页资源!
以下为一个计算实例:2.2×(2+5.8)×-(-3)
1.数据栈,算符栈,算符优先关系表
2.#⼊算符栈,扫描输⼊串#
3.循环: 遇到数值,则⼊数据栈;
遇到算符,则算符栈顶,与当前算符,查表:
<,算符⼊栈;
=,作相应处理:( )去括号;# #,分析结束,跳出循环;
>,栈顶算符弹出,数据栈弹出相应数值,计算,结果⼊栈;
⽆表项值,输⼊串错误。
4.# #相遇,分析完毕,最终结果在数据栈,唯⼀值,在栈顶。
以下为一个计算实例:2.2×(2+5.8)×-(-3)