`
包子_feiFEI
  • 浏览: 70810 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

逆波兰表达式实验

 
阅读更多

原创

转载请注明出处!

包含文件:

1.MainFace.java

2.JiSuan.java

3.HzExp.java

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

界面如图:

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

u逆波兰式定义

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

u产生逆波兰式的前提

中缀算术表达式

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

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

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

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

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

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

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

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

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

代码文件:MainFace.java

代码文件:JiSuan.java

代码文件:HzExp.java

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

分享到:
评论

相关推荐

    逆波兰表达式_课程设计.doc

    逆波兰表达式_课程设计.doc 逆波兰表达式_课程设计.doc

    转化为逆波兰表达式

    C语言:设计一个算法,将一般算术表达式转化为逆波兰表达式,并求逆波兰表达式的值。数据结构实验

    中缀表达式转化为逆波兰表达式

    数据结构(C语言版)的中缀表达式与逆波兰表达式转化问题。

    编译原理 逆波兰表达式及其计算实验 MFC

    非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。 二、实验内容 将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰...

    编写BISON程序,分析和计算逆波兰表达式

    学习YACC(BISON)的语法结构,编写YACC(BISON)程序,生成能够分析和计算逆波兰表达式,构建逆波兰计算器。根据提示,在右侧编辑器补充代码,实现加法(+)、减法(-)、乘法(*)、除法(/)、乘方(^)以及取负运算(n)。

    编译原理实验 (计算器 语法树 逆波兰表达式)

    实现了中缀式变后缀,语法树的生成,可以进行简单的计算

    编译原理实验报告6-逆波兰式的翻译和计算.doc

    逆波兰式的翻译和计算。编译原理的实验报告,有利于新手对于逆波兰的基础理解。文件中给出了具体的代码和理解,还有结果截图显示。采用C语言编写,简单易懂。就一个实验报告!!

    1. 实验3 逆波兰式的产生及计算-预习提示1

    3.设计出模块结构、测试数据,初步编制好程序 2.如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好) 3.对学有余力的同学,测试用的表达式事先放在文本

    数据结构实验代码(C++)栈的应用

    实验内容: 设计一个算法,将一般算术表达式转化为逆波兰表达式,并求逆波兰表达式的值。

    逆波兰式的产生与计算

    1.从左到右扫描中缀表达式,经语法分析找出中缀表达式出现的错误并给出错误的具体位置和类型。...2.设一个运算符栈存放暂时不能出现的运算符,逆波兰区存放逆波兰表达式。测试所编程序,给出正确的结果。

    编译原理 逆波兰式 C++实现

    编译原理 逆波兰式 C++ 中缀表达式 后缀表达式

    【实验报告】 线性数据结构的实现与应用_双端队列_逆波兰式_呼叫中心_XAUAT_(原问题自杜克大学C++ Stacks and Queues and List

    基于双端队列的头插、头删操作,完成栈的应用:逆波兰表达式求值,测试和调试程序。 3. 基于双端队列的头删、尾插操作,完成普通队列的应用:呼叫中心的离散事件模拟,测试和调试程序。 4. 按要求撰写实验报告、...

    C++代码实现逆波兰式

    100行以内C++代码实现逆波兰式 逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀...2、为了为了增加转换后的逆波兰表达式的可读性,我在每个操作数和操作符输出时后面追加了一个空格。 代码如下:

    数据结构实验指导书

    实验3 逆波兰表达式求值 37 实验4 杨辉三角显示 39 实验5四则运算表达式求值 40 实验6 BST 41 实验7 优先队列与堆 42 实验8 哈夫曼编/译码器 44 实验9 图的遍历问题 45 实验10 教学计划编制问题 47 实验11 最短路径...

    逆波兰式的生成

    1、掌握语法分析的基本思想,并用高级语言编写逆波兰式生产程。 2、利用逆波兰式生成算法编写程序,将从键盘上输入的算术表达式(中缀表达式)转化成逆波兰式。

    编译原理 - 逆波兰式的产生及计算:C/C++实现

    逆波兰式(Reverse Polish Notation,RPN),也称为后缀表达式,是一种用于表示数学表达式的形式,其特点是操作符位于与之相关的操作数之后。相比传统的中缀表达式,逆波兰式更容易被计算机程序理解和处理。 通过...

    编译原理实验报告(含有四个小实验)

    实验二 递归向下分析 实验要求:用C语言设计、编制、调试一个典型的语法分析 程序,用于实现下列语法的分析 G[S]: E→eBaA A→a|bAcB ... 求值得出结果,加深对逆波兰求解表达式过程理解,并将其掌握。

    数据结构实验(线性表、栈、队列)

    (1)创建一个顺序表,存放在数组 A[N]中,元素的类型为整型,设计算法调整 A,使其左边的所有元素小于 0,右边的所有元素大于 0...(3)设计一个算法,将一般算术表达式转化为逆波兰表达式,并求逆波兰表达 式的值..

    编译原理实验报告

    实验一 词法分析设计 实验二 LL(1)分析法 实验三 逆波兰表达式的产生及计算 江苏科技大学编译原理实验报告 有源码,有截图

    逆波兰式转换及求值

    实验题目: 表达式求值 <br>◎实验目的:熟悉栈的用法,并训练应用栈解决实际问题 <br>◎实验内容:使用键盘输入表达式,计算表达式的值并输出;将表达式转化成后 缀表达式输出,利用后缀表达式求表达式的值并...

Global site tag (gtag.js) - Google Analytics