首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

含有一元操作符的中缀表达式,有办法转化为后缀表达式么?该怎么解决

2012-02-26 
含有一元操作符的中缀表达式,有办法转化为后缀表达式么?昨天考虑将一个简单的正则表达式转化为后缀形式的

含有一元操作符的中缀表达式,有办法转化为后缀表达式么?
昨天考虑将一个简单的正则表达式转化为后缀形式的时候遇到了这个难题。
  比如(a|b)*(c|d)* 
  在正则表达式中,*表示字表达式出现0次或多次,是一元操作符,并且优先级高过|。所以根据优先级,应该先算a|b 再算c|d,之后接着算两个*。
  我首先想到的后缀形式为ab|cd|**.(.表示连结),但是这实际上是(a|b)((c|d)*)*的后缀表达式。
  如果写成ab|*cd|*.,则破坏了括号优先计算的规则。

  真心求教下各位。

[解决办法]

探讨

引用:

ab|*cd|*没破坏括号优先规则吧

在后缀表达式中,计算顺序不就是运算符号出现的顺序么?所以计算顺序是 | * | *。 如果括号优先不是先算 || 再算 * * 么?

热点排行