逆波兰表达式实验

来源:互联网 发布:软件结构图 编辑:程序博客网 时间:2024/04/27 10:04

原创

转载请注明出处!

包含文件:

1.MainFace.java

2.JiSuan.java

3.HzExp.java

实现功能:中缀表达式转换成后缀表达式,利用后缀表达式进行计算.

界面如图:

逆波兰表达式的产生及计算实验设计思想及算法

逆波兰式定义

    将运算对象写在前面,而把运算符号写在后面。用这种表示法表示的表达式也称做后缀式。逆波兰式的特点在于运算对象顺序不变,运算符号位置反映运算顺序。

产生逆波兰式的前提

     中缀算术表达式

逆波兰式生成的设计思想及算法

(1)首先构造一个运算符栈,此运算符在栈内遵循越往栈顶优先级越高的原则。

(2)读入一个用中缀表示的简单算术表达式,为方便起见,设该简单算术表达式的右端多加上了优先级最低的特殊符号“#”

(3)从左至右扫描该算术表达式,从第一个字符开始判断,如果该字符是数字,则分析到该数字串的结束并将该数字串直接输出。

(4)如果不是数字,该字符则是运算符,此时需比较优先关系。

做法如下:将该字符与运算符栈顶的运算符的优先关系相比较。如果,该字符优先关系高于此运算符栈顶的运算符,则将该运算符入栈。倘若不是的话,则将此运算符栈顶的运算符从栈中弹出,将该字符入栈。

(5)重复上述操作(1)-(2)直至扫描完整个简单算术表达式,确定所有字符都得到正确处理,我们便可以将中缀式表示的简单算术表达式转化为逆波兰表示的简单算术表达式。

产生后缀表达式核心代码:

计算后缀表达式核心代码:

代码文件:MainFace.java

代码文件:JiSuan.java

代码文件:HzExp.java

看了点评下哦~给点建议啥的,谢啦~

原创粉丝点击