一个中缀式到其他式子的转换方法~~

35,15,+,80,70,-,*,20,/               //后缀表达方式

(((35+15)*(80-70))/20)=25           //中缀表达方式

/,*,+,35,15,-,80,70,
20             //前缀表达方式

人的思维方式很容易固定~~!正如习惯拉10进制。就对2,3,4,8,16

等进制不知所措一样~~!

人们习惯的运算方式是中缀表达式。而碰到前缀,后缀方式。。迷茫

其实仅仅是一种表达式子的方式而已(不被你习惯的方式)

我这里教你一种也许你老师都没跟你讲的简单转换方式

这里我给出一个中缀表达式~

a+b*c-(d+e)

第一步:按照运算符的优先级对所有的运算单位加括号~

式子变成拉:((a+(b*c))-(d+e))

第二步:转换前缀与后缀表达式

前缀:把运算符号移动到对应的括号前面

则变成拉:-(
+(a *(bc)) +(de))

把括号去掉:-+a*bc+de  前缀式子出现

后缀:把运算符号移动到对应的括号后面

则变成拉:((a(bc)*
)- (de)+ )-

把括号去掉:abc*-de+-  后缀式子出现

发现没有,前缀式,后缀式是不需要用括号来进行优先级的确定的。

如果你习惯拉他的运算方法。计算的时候也就是从两个操作数的前面

或者后面找运算符。而不是中间找,那么也就直接可以口算拉

转自:http://blog.csdn.net/glldc/article/details/1818787

时间: 2024-10-14 06:11:22

一个中缀式到其他式子的转换方法~~的相关文章

NYOJ467中缀式变后缀式

中缀式变后缀式 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更"习惯于"后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式. 输入 第一行输入一个整数n,共有n组测试数据(n<10). 每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以"="结束.这个

NYOJ467 中缀式变后缀式 【栈】

中缀式变后缀式 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更"习惯于"后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式. 输入 第一行输入一个整数n,共有n组测试数据(n<10). 每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以"="结束.这个

中缀式变后缀式

中缀式变后缀式 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更"习惯于"后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式. 输入 第一行输入一个整数n,共有n组测试数据(n<10). 每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以"="结束.这个

南阳OJ 中缀式变后缀式

 /*中缀式变后缀式 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更"习惯于"后缀式, 关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看, 这里不再赘述,现在你的任务是将中缀式变为后缀式. 输入第一行输入一个整数n,共有n组测试数据(n<10). 每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式, 每个运算式都是以"=&quo

栈的应用 — 中缀式转后缀式

由中缀式转换成后缀式,同样使用栈,并运用一些规则来完成.规则介绍如下: 当读到的是操作数,立即输出. 当读到的是运算符,则先从栈中弹出优先级高于自己的运算符(不包含括号),自己入栈. 读到左括号入栈,读到右括号则将栈中元素出栈并输出,直到遇见左括号(括号都不输出). 输入为空后,将栈元素弹出并输出直到栈空. 注意,最后生成的后缀表达式是考虑了运算符优先级的,再配合逆波兰的无优先级概念这一性质,就能够编写出一个带运算符优先级和括号的简易计算器了. 下面是完整的计算器代码,整型四则运算,可加括号.写

NYOJ 467 中缀式变后缀式

做了表达式求值那道题之后做的 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更"习惯于"后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式. 输入 第一行输入一个整数n,共有n组测试数据(n<10). 每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以"=&quo

[Code] 中缀式转后缀式

[Code] 中缀式转后缀式 概要 对于一个可带括号的中缀四则运算表达式, 例如30 + 4 / 2 或 30 / ( 4 + 2 ), 下面代码将分别转换为对应的后缀表达形式 30 4 2 / + 和 30 4 2 + /. 要求每个 token 之间以若干个空白符隔开, 输入的中缀式为单行. 代码 import java.util.Scanner; import java.util.Deque; import java.util.ArrayDeque; import java.util.Ma

objective-c 一个链式加法计算器实现

一个链式加法计算器实现思路 1.使用时的效果 Calculate * manger=[Calculate new]; int result=manger.add(123).add(123).sub(123).result; 输出结果为:result:123 2.实现方法 新建Calculate类: 添加一个属性@property(nonatomic,assign) int result,作为计算结果: 因为使用的方式为 result=manger.add(123).add(123).sub(12

响应式重构,如何把一个固定页面重构为一个响应式页面:

上周末时接到公司安排下来的任务, 要我一个人在一周内把一个项目里的所有固定页面转换为响应式的页面,14个页面,虽说做成响应式不难,但是,先理解别人的代码,然后通过修改别人的代码,把一个页面转换为一个响应式的页面,还是没有那么简单的,公司觉得这个任务简单,于是把这个任务交给了我这个新手. 在重构一个页面时,我的思路如下: 一.拿到一个页面,你首先要考虑这个页面我是该重新做呢还是在现有的基础上去修改呢? 我这是这么判断的,首先看他的html结构,是否符合响应式的要求,如果符合,就在现有的基础去修改,