在给定表达式树时,我无法创建String表达式。如果我的表达式树看起来像这样(在输出控制台中):
(*(+(5)(-(2)(3)))(6))
如何创建一个方法来创建一个正常格式的表达式?例如,像这样:
(2 - 3 + 5) * 6
我是否应该使用实际的表达式树或表达式树的String方向(如上所示:(*(+(5)( - (2)(3)))(6)))。< / p>
答案 0 :(得分:0)
您应该使用前缀来中缀转换算法。
这是因为你的表达式树字符串是前缀形式,你希望它以中缀形式。
您可以删除输入字符串中的所有大括号。这样会更容易。
答案 1 :(得分:0)
关于我,我建议你阅读这些文件。
调车场算法:https://en.wikipedia.org/wiki/Shunting-yard_algorithm
这个算法是根据“优先权”进行“令牌”堆叠,例如,括号之间的函数首先出现。至于那些阅读这些:
我希望我有所帮助。
祝你有个愉快的一天。 :)