c – 如何为“(1 3 *(5/4))”等字符串编写求值器,并获得数字结果
这是一个面试问题
我对它的解决方案感到困惑,我想我需要堆栈来推送和弹出这些操作符和操作数, 但是我需要两个堆栈,一个用于运算符,一个用于操作数?或者只是一个堆栈?我认为我们需要两个堆栈,但是有什么办法可以解决使用一个堆栈? 我也有点困惑,这将如何工作,每次我得到一个运算符,我会弹出两个我最高的操作数,并推动结果在操作数堆栈 首选的是括号,然后是分,多,最后的减法,然后加法 但是如何检查何时弹出两个操作数并进行必要的操作操作? 解决方法
看看
shunting yard algorithm.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |