算法高手请进,关于波兰式(前缀)的优化

zrebecca 2011-03-02 11:15:09
1.中缀表达式:a+b*c+d*e+~f
2.前缀表达式(波兰式):+++a*bc*de~f
3.后缀表达式(逆波兰式):abc*+de*+~f+

1.是我们常见的数学表达式
2.是波兰式
3.是逆波兰式

这里+表示||的关系,*表示&&的关系,~表示!
所以1、2、3都是逻辑表达式,而不是算术表达式

如果是算术表达式,采用逆波兰式比较合适;
但是因为是逻辑表达式,存在着短路现象,
比如A|B表示成波兰:|AB,
这样如果知道了操作符|,然后知道第一个操作数是1,
那后面的操作数就可以不管了,
当B是一个很复杂的逻辑表达式组合的时候,
短路就比较有意义了,

比如下面这个逻辑表达式
+ + * * * A ~ B C * ~ D E * F ~ G

有没有一种算法,可以优化波兰式的算法,
也就是前缀表达式的算法,能够判断出短路的情况呢?

我看了《编译原理》的第8章,有优化的部分,但是和我这里的情况不是很一样。
...全文
48 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zrebecca 2011-03-02
  • 打赏
  • 举报
回复
没有人回答?

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧