2015-09-24 23 views
1

假设我有一个条件形式为“(a> b)或(c < d)”。我怎样才能将它转换成逆波兰表示法并计算它?我试着将“和/或”标记设置为最低优先级,并得到“a b c OR> d <”。这样对吗?如何在条件逆波兰公式中使用AND/OR?

基本上我想添加条件功能到分路码算法的这个实现; http://eddmann.com/posts/shunting-yard-implementation-in-java/

+1

操作员追踪操作数。所以:b>(a> b)。对于所有这些:a b> c d

+0

我正在基于此实现的调车场算法; http://eddmann.com/posts/shunting-yard-implementation-in-java/ –

+0

是的,它看起来像我只需要改变条件标记的优先级。现在它变得更有意义。谢谢! –

回答

1

(A> B)或(C < d)在RPN:

AB> CD < OR

请务必阅读左到右:

Post Fix Algorithm