美文网首页
栈的应用---后缀表达式的计算

栈的应用---后缀表达式的计算

作者: 吴健民IT | 来源:发表于2021-03-01 22:10 被阅读0次

步骤一:中缀表达式转后缀表达式

①设立一个操作符栈,用以临时存放操作符;设立一个数组或队列,用以存放后缀表达式。

②从左到右扫描中缀表达式,如果遇到操作数就直接把它们加入到后缀表达式中。

③如果碰到操作符op,就将其优先级与操作符栈的栈顶操作符的优先级比较

· 若op的优先级高于栈顶操作符的优先级,则压入操作符栈。

· 若op的优先级低于或等于栈顶操作符的优先级,则将操作符栈的操作符不断弹出到后缀表达式中,直到op的优先级高于栈顶操作符的优先级

④重复上述操作,直到中缀表达式扫描完毕,之后若操作符栈中仍有元素,则将它们依次弹出至后缀表达式中。

操作符的优先级:乘法==除法>加法==减法,在具体实现上可以用map建立操作符和优先级的映射。

步骤二:计算后缀表达式

从左到右扫描后缀表达式,如果是操作数,就压入栈;如果是操作符,就连续弹出两个操作数(注意:后弹出的是第一操作数,先弹出的是第二操作数),然后进行操作符的操作,生成的新操作数压入栈中。当栈中就存在一个数时,就是最终的答案。

· 注意除法可能导致浮点数,因此操作数类型要设成浮点型。

代码见胡凡算法笔记 P249

相关文章

  • 计算器

    使用Java写的一个可以计算+,-,*,/ 的计算器。首先用栈把中缀表达式转化成后缀表达式,再利用栈对后缀表达式求...

  • 机试常用算法和题型-栈和队列专题

    堆栈+ordermap使用括号匹配 堆栈使用简单计算器 栈+队列实现中缀转后缀,计算后缀表达式 栈+队列计算,包括...

  • 栈的应用---后缀表达式

    栈并不陌生,它的其中一个应用就是后缀表达式 后缀表达式由来 普通的数学计算比如78,3+4等通过程序可以很简单的编...

  • 数据结构笔记-栈的应用-表达式转换问题

    关键字:表达式、中缀、前缀、后缀、波兰、逆波兰 概述 在数据结构中,栈有一个常见的应用就是计算机中表达式的计算。 ...

  • 栈的应用---后缀表达式的计算

    步骤一:中缀表达式转后缀表达式 ①设立一个操作符栈,用以临时存放操作符;设立一个数组或队列,用以存放后缀表达式。 ...

  • Python 简单计算器-逆波兰后缀表达式实现

    中缀表达式 后缀表达式 简易计算器,可以通过栈来实现。然而如果直接使用中缀表达式,需要处理括号,而使用后缀表达式则...

  • 【Python】(十)后缀表达式

    python实现栈的代码回顾 后缀表达式回顾 后缀表达式是计算机科学中的一种常见的数学表达式形式。相比于人类常用的...

  • 计算器专题

    0X00 基础知识 后缀表达式的计算 150. 逆波兰表达式求值 后缀表达式就是这么简单粗暴,碰到一个符号,就从栈...

  • 后缀(逆波兰)表示法

    后缀表示法是对栈的典型应用,所谓后缀表示法就是将我们平时所用的四则运算表达式(中缀表示法)以不需要括号,表示成计算...

  • 栈的应用——后缀表达式

    1.计算机处理标准表达式的能力,最重要的有两步:将中缀表达式转化为后缀表达式(栈用来进出运算的符号)将后缀表达式进...

网友评论

      本文标题:栈的应用---后缀表达式的计算

      本文链接:https://www.haomeiwen.com/subject/lsrzfltx.html