中缀表达式的题目困扰了我两三年,都没去写过。。这两天看到2005年提高组的T3要用到所以心血来潮写了一下。 表达式求值借助基本结构应该不用说了是栈,不管手写还是STL都没有太大关系。而中缀表达式最难控制的地方是优先级,算上+-*/^()一共有四个优先级【+-,*/,, ^()】(后面会提到一个三级的 ...
分类:
其他好文 时间:
2016-10-06 17:03:17
阅读次数:
163
中缀表达式的计算 利用两个栈来实现,操作数栈,操作符栈 只支持个位数运算 最后必须输入一个'#' ...
分类:
其他好文 时间:
2016-09-29 01:35:05
阅读次数:
90
首先我要说一下,我得作业我尽力了,但是能力有限,还需练习。 四则运算,改进代码流程: 1.手动输入算式(属于中缀表达式) 2.将中缀表达式转化成后缀表达式 生成out数组 3.一个操作数栈,一个运算符栈,按照后缀表达式计算方法将out中的字符分别放入两个栈 4.当操作数栈只有一个数时结束计算。 代码 ...
分类:
其他好文 时间:
2016-09-15 06:29:02
阅读次数:
195
这里我给出一个中缀表达式:a+b*c-(d+e) 第一步:按照运算符的优先级对所有的运算单位加括号:式子变成了:((a+(b*c))-(d+e)) 第二步:转换前缀与后缀表达式 前缀:把运算符号移动到对应的括号前面 则变成了:-( +(a *(bc)) +(de)) 把括号去掉:-+a*bc+de ...
分类:
其他好文 时间:
2016-09-14 21:59:08
阅读次数:
211
算数表达式的计算,也是很基础的一个问题。花了点时间写了下。 网上很多正确代码。但没有详细说明。虽然不复杂,但是还是写详细点。只有仔细思考过。问题才会在头脑中,觉得简单。 基本有2种方法。 1)中缀表达式转为后缀表达式,是最简洁有力的方法。 2)符合人的计算思路的逐步方法,不推荐使用,只适合锻炼下逻辑 ...
分类:
其他好文 时间:
2016-09-04 20:38:35
阅读次数:
125
1.概念 你可能听说过表达式,a+b,a+b*c这些,但是前缀表达式,前缀记法,中缀表达式,波兰式,后缀表达式,后缀记法,逆波兰式这些都是也是表达式。 a+b,a+b*c这些看上去比较正常的是中缀表达式,就是运算符放在两个操作数之间。前缀表达式是将运算符放在相关操作数之前,后缀表达式是将运算符放在操 ...
分类:
编程语言 时间:
2016-08-30 00:18:08
阅读次数:
327
其实这个东西早在7月开始的时候我就写好了,本来想等小师妹写好了她的版本再放到网上的。。。无奈她写的实在是太慢了。这个东西还是有改进的空间的,比如升级成浮点模型啥的。 逆波兰表达式的可以以O(N)时间复杂度处理任意表达式,其实也叫后缀表达式,中缀表达式(就是我们一般看到的表达式(1+1=2)),处理的 ...
分类:
其他好文 时间:
2016-08-28 12:31:27
阅读次数:
224
在看K&R的时候,里面提到了逆波兰表示法,老实说看得我迷迷糊糊的,主要是这种反人类的后缀表示法做出的计算器,一般人根本就不知道怎么输入好吧。今天看书的时候,看到了将中缀表达式转为后缀表达式的方法才恍然大悟,原来是少了这一步。这下我就知道该如何做一个可用的逆波兰计算器了。 先简单介绍一下如何完成这步转 ...
分类:
其他好文 时间:
2016-08-13 01:04:07
阅读次数:
271
本篇概述下运用栈(stack),将中缀表达式(postfix expression)转换成后缀表达式(infix expression),并运算结果。 ...
分类:
其他好文 时间:
2016-08-06 01:49:29
阅读次数:
276