反向波兰表示法中的双重否定

时间:2017-07-10 17:29:37

标签: algorithm parsing expression evaluation querying

我正在编写一个布尔反向波兰表示法解析器和评估器。当我想评估双重否定时,比如!! A,相应的RPN是!A!,根据shunting-yard algorithm。但是,当我尝试从Wikipedia运行评估算法时,它会失败,因为当第一个!如上所述,没有任何价值可以应用运营商。

但是,如果我将表达式写为!(!A),则转换为A !!在RPN,这是我需要的。

转换为RPN或评估版是否有问题?我可以通过每次否定强制括号来解决它,但这似乎不是一个优雅的解决方案......

0 个答案:

没有答案