中缀表达式
运算符号在数字中间
后缀表达式
运算符号在数字之后
计算机计算计算的是后缀表达式
中缀变后缀举例
5 + 3 -> 5 3 +
1 + 2 * 3 -> 1 2 3 * +
9 + (3 - 1) * 5 -> 9 3 1 - 5 * +
中缀变后缀算法
···遍历中缀表达式中的数字和符号
·········对于数字:直接输出
··...
分类:
其他好文 时间:
2015-06-08 17:21:20
阅读次数:
84
Window Xp画图软件,倾力打造,觉得丑,怪我咯~~~本文部分借鉴自http://www.nowamagic.net/librarys/veda/detail/2307
分类:
其他好文 时间:
2015-05-30 07:03:00
阅读次数:
116
前言:中缀表达式符合人们的阅读习惯; 如:5+3
后缀表达式符合计算机的运算习惯;如:53+
现在通过栈对运算符号的入栈、出栈操作实现将中缀表达式转化成后缀表达式
1、LinkList.h
#ifndef _LINKLIST_H_
#define _LINKLIST_H_
typedef void LinkList;
typedef s...
分类:
其他好文 时间:
2015-05-26 21:35:12
阅读次数:
116
前言:中缀表达式符合人们的阅读习惯; 如:5+3
后缀表达式符合计算机的运算习惯;如:53+
现在运用栈的知识对后缀表达式的运算方式进行表达
1、LinkList.h
#ifndef _LINKLIST_H_
#define _LINKLIST_H_
typedef void LinkList;
type...
分类:
其他好文 时间:
2015-05-26 21:34:01
阅读次数:
233
1、利用栈,将中缀表达式(即标准形式的表达式)转换为后缀式例:a+b*c+(d*e+f)*g转换成abc*+de*f+g*+数据结构:一个操作符栈方法:(1)读入字符(2)如果字符为操作数,直接输出(3)如果字符为左圆括号,压入栈中(4)如果字符为非括号操作符,则比较当前操作符与栈顶操作符的优先级:...
分类:
其他好文 时间:
2015-05-13 18:37:59
阅读次数:
102
规则:
当读到一个操作数时,立即把它放到输出中。当读到操作符时不立即输出,从而必须先存在某个地方。正确的做法是将已经见到过的操作符放进栈中而不是放到输出中。当遇到左括号时我们也要将其推入栈中。如果遇到一个右括号,我们就弹出栈中的符号并输出,直到遇到对应的左括号,并且这个左括号只弹出,不输出。
存入栈中的操作符的规则:优先级必须保持从上到下为高到低。遇到一个操作符时,我们从栈中弹出元素,直到发现...
分类:
其他好文 时间:
2015-05-10 09:48:22
阅读次数:
129
设x的值为3,y=0,则表达式y=(++x)+(++x)后,y的值是( ),不同编译器会有不一样的答案。先写结果:
C++:
y=10;
java:
y=9;
matlab:
y=6;
为什么会有这样的结果呢,到底哪个是对的?其实没有对错之分。原因是各编译器处理式子的方式不一样,这个在编译原理中我们学过。就是所谓的前缀表达式,中缀表达式,后缀表达式。什么意思呢?拿刚才的例子来说...
分类:
其他好文 时间:
2015-04-28 23:01:06
阅读次数:
222
中缀表达式化后缀表达式: (1+3)/8*3-5= 构建一个空运算符栈。先向里面压入一个'='(方便后边的比较)。然后从左向右扫描中缀表达式,如果是操作数,则直接输出即可;如果是左括号则直接入栈,如果是右括号,则弹栈,直到左括号且将左括号也弹出;如果是其他运算符,则按照乘除优先于加减,如...
分类:
其他好文 时间:
2015-04-26 12:21:05
阅读次数:
138
它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例:(3 + 4) × 5 - 6 就是中缀表达式- × + 3 4 5 6前缀表达式3 4 + 5 × 6 -后缀表达式中...
分类:
其他好文 时间:
2015-04-13 22:35:02
阅读次数:
124
众所周知啦,我们数学里面的公式就是中缀表达式(infix),形如a*(b+c),支持括号用于调整运算的顺序。我们平常用的就是中缀表达式。那么什么是后缀表达式(postfix)?后缀表达式(又称为逆波兰reverse polish)就是不需要括号就可以实现调整运算顺序的一种技法。比如:ab+cde+*...
分类:
其他好文 时间:
2015-04-13 01:38:57
阅读次数:
121