前言
栈的一个广泛应用就是讲中缀表达式转换为后缀表达式。所谓中缀表达式就是我们从小到大所接触的:10+3-6/2+4*5 之类的算数表达式。而后缀表达式又称为逆波兰表达式,
它是由波兰逻辑学家J.Lukasiewicz于1929年提出的。
为什么需要后缀表达式
转换算法
那么如何将中缀表达式转换为后缀呢?最简单的步骤如下:
1.按照优先级将整个表达式从里到外加满括号...
分类:
其他好文 时间:
2016-05-12 21:38:47
阅读次数:
229
逆波兰表达式: 计算给定的逆波兰表达式的值,有效操作只有加减乘除,每个操作数都为整数。 如: "2","1","+","3","*" : 9; (2+1)*3 "4","13","5","/","+" : 6; 4+(13/5) 程序实现: 运行结果: 转载请注明出处: C++博客园:godfrey ...
分类:
其他好文 时间:
2016-04-30 18:16:25
阅读次数:
154
问题描述: 计算给定的逆波兰表达式(即后缀表达式)的值。 事实上,二元运算的前提下,中缀表达式可以对应一棵二叉树;逆波兰式即该二叉树后序遍历的结果。 分析思路: 如果当前是操作数,则直接入栈; 如果当前是操作符,则栈顶的两个元素弹出,然后与当前操作符运算后入栈。 Code: ...
分类:
其他好文 时间:
2016-04-30 15:30:24
阅读次数:
266
逆波兰表达式,它的语法规定,表达式必须以逆波兰表达式的方式给出。逆波兰表达式又叫做后缀表达式。下面是一些例子:正常的表达式逆波兰表达式a+b--->a,b,+a+(b-c)--->a,b,c,-,+a+(b-c)*d--->a,b,c,-,d,*,+a+d*(b-c)--->a,d,b,c,-,*,+a=1+3--->a=1,3+通过后缀..
分类:
其他好文 时间:
2016-04-16 19:48:14
阅读次数:
203
昨天刚实现了栈的一些基本操作,今天就来实现一点栈的应用把!首先,写一点比较简单的:1.逆波兰表达式的计算。在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示。逆波兰表达式也称为后缀表达式。比如:两种表达式如果在程序中运行..
分类:
其他好文 时间:
2016-04-12 07:39:30
阅读次数:
167
学习了栈后,那么栈有什么用呢?下面就举一个经典的例题---逆波兰表达式的求解。首先呢,什么是逆波兰表达式呢?逆波兰表达式呢,就是先是操作数,后操作符。所有的表达式都可以写成逆波兰表示式的形式。假如现有一逆波兰表达式,那么如何求它的解呢?我们的栈就要派上用场喽!..
分类:
其他好文 时间:
2016-04-10 19:37:22
阅读次数:
151
一般情况下表达式是由操作数和运算符组成,例如算数表达式中通常将运算符放在两个操作数中间,譬如a+b的形式,这种形式称为中缀表达式,那么问题来了,是否有后缀表达,前缀表达式呢???对,没错,这些后缀表达,前缀表达式都是由波兰数学家JanLukasiewicz提出来的把运算符写..
分类:
其他好文 时间:
2016-04-10 19:34:21
阅读次数:
143
1.逆波兰表达式?在我们的普遍认知中,计算的优先级总是和()相关,形如(1+2)*(3+4)这样的式子,我们看起来十分的清晰明了,但对计算机来说,它会进行很多次的判断来确定一个运算的优先级。于是在很久很久之前就有一个人发现,如果我们将上述算式写成形如12+34+*的形式,..
分类:
编程语言 时间:
2016-03-24 18:35:57
阅读次数:
200
题目:写一个能自动生成小学四则运算题目程序 要求: 除了整数以外,还要支持真分数的四则运算 让程序能接受用户输入答案,并判断对错 对于求解四则运算的算法,在数据结构课程上有过相同的题目,但是当时我们需要做的求一个给定的四则运算题目的结果。根据逆波兰表达式将中缀式转换成后缀表达式再利用栈结构求解。这次
分类:
其他好文 时间:
2016-03-11 16:59:53
阅读次数:
500
我认为四则运算生成程序功能上分为两大部分,随机生成四则运算表达式+四则运算表达式的计算 开始的时候想从编程结构上划分这两部分,用逆波兰表达式和栈的结构进行四则运算的计算,但是实现效果不太理想,编程到一半就编不下去了。 后来上网查阅了一些资料,并受到《编译原理》书中表达式可以用树的结构来表示的启发,我
分类:
其他好文 时间:
2016-03-05 20:14:36
阅读次数:
183