给定一个算术表达式,我需要一些创建自定义树的帮助.比如说,您输入此算术表达式:
(5+2)*7
Run Code Online (Sandbox Code Playgroud)
结果树应如下所示:
*
/ \
+ 7
/ \
5 2
Run Code Online (Sandbox Code Playgroud)
我有一些自定义类来表示不同类型的节点,即PlusOp,LeafInt等.我不需要评估表达式,只需创建树,所以我可以在以后执行其他功能.此外,否定运算符' - '只能有一个子节点,并且要表示'5-2',您必须将其输入为5 +( - 2).
需要对表达式进行一些验证,以确保每种类型的运算符都具有正确的no.参数/儿童,每个开口括号都附有一个结束括号.
另外,我应该提一下,我的朋友已经编写了将输入字符串转换为一堆标记的代码,如果这对此有帮助的话.
我会感激任何帮助.谢谢 :)
(我读过你可以编写一个语法并使用antlr/JavaCC等来创建解析树,但我不熟悉这些工具或编写语法,所以如果这是你的解决方案,我将不胜感激,如果你可以为他们提供一些有用的教程/链接.)
我正在寻找一个C++类,我可以将其纳入我正在进行的项目中.我需要的功能是将字符串操作评估为数字形式:例如"2 + 3*7"应评估为23.
我确实意识到我所要求的是一种翻译,并且有一些工具来构建它们,我在CS中的背景非常差,所以如果你能指出我已经准备好的课程,我将不胜感激.