• 逆波兰表达式1(简介)


    逆波兰表达式(简介)
    
    ##一 问题描述
    解析并计算 9+(3-1)*3+10/2
    
    首先,以上的公式对于人来说是很好解析计算的。但是对于计算机来说就不是那么友好了。后来波兰的逻辑学家创建了一种后缀表达法类解决这个问题。这位同学的表示方法被称为逆波兰表达式。
    
    ###1 后缀表达式:
    简单介绍下什么叫做中缀表达式和后缀表达式。
    中缀表达式:平时的计算表达式为中缀表达式,类似3-1这样的平时我们书写的格式。比如上面的9+(3-1)*3+10/2。
    后缀表达式:将计算的操作数放在前面,最后才放置操作符。称为后缀表达式。比如3-1的后缀表达式为 3,1, -。
    
    ###2 后缀表达式的转换
    比如将上面表达式的中缀表达式转为后缀表达式:
    
    [9,+,(,3,-,1,)*,3,+,10,/,2]
    
    首先(3-1)转换为
    
    [3,1,-]
    
    首先(3-1)*3 需要转换为 
    
    [3,1,-,3,*]
    
    然后 9 + (3-1)*3 转换为
    
    [9,3,1,-,3,*,+]
    
    继续如此转换,得到最终的后缀表达式如下:
    
    [9,3,1,-,3,*,+,10,2,/,+ ]
    
    ###2 后缀表达式的计算
    已经将中缀表达式转化为后缀表达式后,进行计算结果。
    
    我们可以没遇到一个符号,就先计算符号前面的结果,然后将值放回到表达式中:
    
    如下:
    
    [9,2,3,*,+,10,2,/,+ ]	遇到符号*,计算 2,3,* =6
    
    [9,6,+,10,2,/,+]	遇到符号+,计算9,6,+=15
    
    [15,10,2,/,+]   遇到符号/,计算10,2,/ = 5
    
    [15,5,+]	遇到符号+,计算15,5,+ =20
    
    [20]	最终结果
    
    
  • 相关阅读:
    正向代理与反向代理的区别
    显式拥塞通知ECN剖析
    Save info in Hidden Field
    sessionID difference
    Windows server 2003 无法找到Cookies位置
    create Cookie
    SQL Server Session
    New class in ASP.NET
    Save info in Query string
    Crypto number
  • 原文地址:https://www.cnblogs.com/sxt102400/p/3039568.html
Copyright © 2020-2023  润新知