Pat*_*rio 5 algorithm postfix-notation shunting-yard
我一直在看维基页面:http://en.wikipedia.org/wiki/Shunting-yard_algorithm
我已经使用代码示例来构建第一部分,基本上我现在可以转向:
3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3 成 3 4 2 * 1 5 ? 2 3 ^ ^ / +
但我不知道如何使用3 4 2 * 1 5 ? 2 3 ^ ^ / +获取3.00012207
并且wiki上的示例代码和解释对我没有任何意义.
有人可以解释如何评估3 4 2 * 1 5 ? 2 3 ^ ^ / +和产生答案.提前致谢.我不需要代码示例只是一个很好的解释或示例的细分.
这不重要,但我正在工作.net C#.
修复后的表示法就是如何在HP计算器中进行数学运算.
保持一个堆栈,每当你得到一个数字添加到顶部.每当您让操作员从顶部消耗输入,然后将结果添加到顶部
token stack
*empty*
3 3 //push numbers...
4 3 4
2 3 4 2
* 3 8 //remove 4 and 2, add 4*2=8
1 3 8 1
5 3 8 1 5
- 3 8 -4
2 3 8 -4 2
3 3 8 -4 2 3
^ 3 8 -4 8
... ...
Run Code Online (Sandbox Code Playgroud)