数据结构与算法笔记(10) - 表达式

概述

本文所讨论的表达式指的是数学表达式。在数学表达式中,最常见的结构是由一组二元运算符和运算对象构成,通常,二元运算符写在运算对象中间,这样的形式成为中缀表达式。将运算符写在运算对象前面称为前缀表达式,将运算符写在运算对象的后面称为后缀表达式。
本文对表达式的讨论是假设运算符为二元运算符。

中缀表达式

中缀表达式是日常最习惯的一种表达式,但是作为表达式的表示方式,它很难统一的贯彻,对于一元和多元运算符难以用中缀表达式表示。
在运算符的元数唯一且确定的前提下,描述表达式的最重要的问题是准确描述表达式的顺序,而中缀表达式不足以表示所有的可能的运算顺序,它需要借助其他的辅助措施,比如辅助符号、约定的优先级等。

前缀表达式

前缀表达式,也成为波兰表达式,是由波兰数学家 J. Lukasiewicz 于1929年提出的,它将所有的运算符都写在他们的运算对象前面。每个运算符的运算对象,就是它后面出现的几个完整表达式,表达式个数由运算符的元数确定。这样的规定完全不需要引入括号,它已自然地描述了计算顺序。

后缀表达式

后缀表达式,也被称为逆波兰表达式,它与前缀表达式类似,只不过运算符和运算对象的位置相反。其中所有运算符都写在它们的运算对象之后。每个运算符的运算对象,就是它前面出现的几个完整表达式,个数也是由元素安抚的元数确定的,同样它也自然的描述了复杂表达式的计算顺序而不需要引入其他辅助机制。
后缀表达式特别适合计算机处理。

举个栗子

一下三种表达形式描述的是同一个计算过程


                
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值