博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中缀、前缀和后缀表达式
阅读量:6976 次
发布时间:2019-06-27

本文共 1366 字,大约阅读时间需要 4 分钟。

我们学习的算法中的表达式有中缀、前缀和后缀之分,到底有什么区别呢?

中缀(INFIX)

中缀表达式(infix expression)可以是单个变量,或两个变量以及中间的操作符。

A

A + B
(A + B) + (C – D)

前缀(PREFIX)

前缀表达式(prefix expression)可以是单个变量,一个操作符,后面跟两个操作数,每个前缀表达式包括一个操作符和两个操作数。

A

+ A B
+ + A B – C D

后缀(POSTFIX)

后缀表达式(postfix expression),也叫反转的波兰记法(Reverse Polish Notation)可以是单个变量,或者是两个操作数外跟一个操作符,每个后缀表达式包括两个操作数后跟一个操作符。

A

A B +
A B + C D –

前缀和后缀记法是波兰数学家发明的手写数学表达方法,好处就是不需要括号。他们的时间复杂度都是O(n),n为数组元素个数。

INFIX PREFIX POSTFIX
A + B + A B A B +
A + B – C – + A B C A B + C –
(A + B) * C – D – * + A B C D A B + C * D –


为了方便起见,其他一些操作符的优先级和结合性列表如下:

TOKEN OPERATOR PRECEDENCE ASSOCIATIVITY
( )
[ ]
– .
function call
array element
struct or union member
17 left-to-right
— ++ increment, decrement 16 left-to-right
!
~
– +
& *
sizeof
logical NOT
one’s complement
unary minus or plus
address or indirection
size (in bytes)
15 right-to-left
(type) type cast 14 right-to-left
* / % multiplicative 13 left-to-right
+ – binary add or subtract 12 left-to-right
<< >> shift 11 left-to-right
> >=
< <=
relational 10 left-to-right
== != equality 9 left-to-right
& bitwise AND 8 left-to-right
^ bitwise XOR 7 left-to-right
| bitwise OR 6 left-to-right
&& logical AND 5 left-to-right
|| logical OR 4 left-to-right
? : conditional 3 right-to-left
= += /= *= %=
&= ^=
assignment 2 right-to-left
, comma 1 left-to-right

转载于:https://www.cnblogs.com/programnote/p/4715541.html

你可能感兴趣的文章
Linux系统基础-管理之用户、权限管理
查看>>
Nginx(二) 配置与调试
查看>>
A first look at Xync Lync client on iOS iPhone/iPad
查看>>
iphone越狱神器
查看>>
HashSet 详解
查看>>
C++中public、protect和private用法区别
查看>>
LVM逻辑卷的缩减与删除,LVM逻辑卷快照,btrfs文件系统,网络管理
查看>>
git命令
查看>>
grails 常用修改
查看>>
Java 匿名类也能使用构造函数
查看>>
nginx系列:nginx反向缓存代理详解
查看>>
点击通知栏后打开Activity,并传参
查看>>
检查是否支持 SO_REUSEPORT
查看>>
Spring MVC配置
查看>>
JDBC连接各种数据库方法
查看>>
国际版Azure搭建Windows多种类型×××_三.配置SSTP ×××连接服务
查看>>
fullPage教程 -- 整屏滚动效果插件 fullpage详解
查看>>
Python 安装 xlsx模块
查看>>
周鸿祎在360新员工入职培训上的讲话
查看>>
鸟哥学习笔记---网络安全基础
查看>>