后缀表达式看完这一篇文章就理解了! | 您所在的位置:网站首页 › a衰变过程表达式怎么求出来 › 后缀表达式看完这一篇文章就理解了! |
宝、⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ 后缀表达式是栈的运用,如果你还不知道栈是什么,那请你先去看看关于栈的文章 文章目录 一、什么是后缀表达式二、后缀表达式的运算顺序三、中缀表达式四、中缀表达式转化为后 缀表达式 一、什么是后缀表达式后缀表达式是一种不需要括号的表达式。 对于四则运算,我们用括号来规定了它的运算顺序。 但是在早些年对于计算机,并没有括号来规定其运算顺序。 当没有了括号 比如想要输入 9+(3-1)x3+10/2 当没有了括号会怎么样呢, 总不能像这样:9+3-1x3+10/2 输入吧 那么伟大的科学家是怎么来解决四则运算顺序的呢? 20世纪50年代 波兰逻辑学家Jan Lukasiewicz 发明了一种没有括号的表达式(后缀表达式) 来解决这个问题,之所以叫后缀表达式 是因为所有的运算符号都要在数字后面出现才行; 二、后缀表达式的运算顺序先给出一个后缀表达式吧如 四则表达式:9+(3-1)x3+10÷2 后缀表达式:9 3 1 - 3 x + 10 2 / + 相信你一定蒙圈了 我们先把四则表达式的结果算出来 我想想是多少呢 哦原来是20!(我太聪明了) 四则表达式显然不需要多bb 那后缀表达式是怎么算的呢 那显然就需要引用最开始说的栈了 因为后缀表表达式本来就是栈的一种应用 那么现在来说说后缀表达式的规则 先从左到右依次入栈 当是数字的时候直接入栈 当是运算符号的时候 就将栈的最上面两个数拿出进行运算 后 再将结果进栈 记住(栈顶元素永远在运算符号的右边) 那现在我们来算 后缀表达式:9 3 1 - 3 x + 10 2 ÷ + 第一步从左到右依次入栈 9 3 1 现在栈从上到下1 3 9 进入符号 - 将1和3 拿出 3-1 =2 栈顶元素永远在运算符号的右边 然后再把2进栈 现在栈从上到下是 2 9 再进入3 现在栈从上到下是 3 2 9 再运算符号 x 拿出 2x3 =6 再进栈 现在栈从上到下是 6 9 在运算+ 6+9=15 现在栈从上到下是 15 后缀表达式:9 3 1 - 3 x + 10 2 ÷ + 进入 10 2 现在栈从上到下是 2 10 15 运算 ÷ 10÷2=5 5 进栈 现在栈从上到下是 5 15 最后运算+ 15+5 得20 最后20出栈 (累了) 后缀表达式:9 3 1 - 3 x + 10 2 ÷ + =20 三、中缀表达式啊??就是四则运算表达式 宝 四、中缀表达式转化为后缀表达式 相信看了前面的规则后,这个你应该也不难理解了 直接上规则: 9+(3-1)x3+10÷2 后缀表达式从左到右遍历, 1,是数字直接写上 2,是任何运算符号 ①右括号----) 和优先级 不高于 栈顶元素 则 栈顶元素依次输出 并当前符号进栈(括号直接消失) 好吧我知道你又麻了 直接诉说好吧, 中缀表达式 9+(3-1)x3+10÷2 从左到右 9 写上 当前表达式为 9 + 入栈(目前栈空,栈空就进栈) ( 入栈 目前栈里从上到下:( + 3写上 当前表达式为 9 3 - 入栈 目前栈里从上到下:-( + 中缀表达式 9+(3-1)x3+10÷2 1写上 当前表达式为 9 3 1 )右括号 遇到右括号 输出栈顶元素 并抵消左括号 写上 - 当前表达式为 9 3 1 - 当前栈从上到下 + 中缀表达式 9+(3-1)x3+10÷2 x 优先级高于+ 直接入栈 3写上 当前表达式 9 3 1 - 3 当前栈从上到下 x + 接下来 + 判断优先级 +优先级小于x x 出栈写上表达式 判断优先级 + 和+ 相同 属于 不高于 + 出栈 写上表达式 后面的+ 入栈 当前表达式 9 3 1 - 3 x + 再后面 10 写上表达式 ÷ 判断优先级 高于+ 进栈 2 写上 当前表达式 9 3 1 - 3 x + 10 2 当前栈从上到下 ÷ + 由于已经没有符号和数字了 栈内依次出栈并写入表达式 最后得出 9 3 1 - 3 x + 10 2 ÷ + 总结宝 你懂了没我纯文字描述真的很莽 (主要是我不会作图)以后会优化的,另外有错误一定要评论指出,我最怕 我一个人在这里乱bb 没人告诉我,我就淦了。另外这是参照大话数据结构写的。、大家要学数据结构建议买本书系统的学习 祝你越来越久,不要关注我(疯狂暗示) 爱你 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |