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

  • 相关阅读:
    通过anaconda进行python多版本控制
    搭建java环境
    windows安装 Microsoft Visual c++
    更改jupyter notebook的主题颜色(theme) 包括pycharm
    linux服务器安装anaconda,然后远程使用jupyter
    根据经纬度坐标计算距离-python
    Redis相关链接
    VBA笔记-参考教程
    用sklearn计算卡方检验P值
    linux创建新用户
  • 原文地址:https://www.cnblogs.com/xiaoboxueit/p/13094019.html
Copyright © 2011-2022 走看看