zoukankan      html  css  js  c++  java
  • 前缀(波兰表达式)、中缀、后缀表达式(逆波兰表达式)

    前缀表达式:波兰表达式,运算符位于操作数字之前。

    后缀表达式:逆波兰表达式

    中缀表达式:一般的数字加减表达式(常见的运算表达式),如:(6+5)*3-4,对应的前缀表达式为 -*+4356

    在运算的过程中一般都将中缀表达式转换为后缀表达式来通过计算机求解。

    前缀表达式:

    从右至左扫描,将数字压栈,然后用运算符进行运算(运算符从左往右),

    如:(6+5)*3-4,对应的前缀表达式为 -*+4356

    由于先将数字压栈,它的运算过程为4+3=7;7*5=35;35-6=29

    运算顺序为栈顶元素-栈底元素  从上往下,先弹栈的在前。

    后缀表达式:

    也是将表达式从右往左扫描,运算符位于操作数之后,如果有括号,则将括号内的操作符提前,括号内的数字提前

    如:(3+4)*5-6的后缀表达式为:34+5*6-

    a+(b-c)*d的后缀表达式为:abc-d*+

    运算时将后缀表达式从左向右扫描,遇到数字就直接压栈,遇到运算符就弹出栈中存在的数字(栈顶元素和次顶元素)并进行计算,次顶在前,栈顶在后这样进行计算,然后将结果入栈,不读重复得出最终结果。

    (3+4)*5-6的后缀表达式为:34+5*6-,计算过程如下:

    3+4=7;   7*5=35;  35-6=29; 

    最终的结果就为29

  • 相关阅读:
    初拾Java(问题一:404错误,页面找不到)
    新年新气象--总结过去,展望未来
    接口测试[整理]
    [转]SVN-版本控制软件
    浅谈黑盒测试和白盒测试
    Bug管理工具的使用介绍(Bugger 2016)
    P2805/BZOJ1565 [NOI2009]植物大战僵尸
    近期学习目标
    P3643/BZOJ4584 [APIO2016]划艇
    P5344 【XR-1】逛森林
  • 原文地址:https://www.cnblogs.com/xiaoboxueit/p/13094019.html
Copyright © 2011-2022 走看看