【发布时间】:2009-10-22 08:15:19
【问题描述】:
我的任务是编写一个应用程序(不幸的是在 C 上),它以中缀表示法读取表达式(带有变量、一元和二元运算符)并将其存储在内存中,然后对其进行评估。此外,还应检查正确性。
例如:
3*(A+B)-(-2-78)*2+(0*A)
得到所有值后,程序应该计算它。
问题是: 最好的方法是什么?(优化和验证)
选择什么符号作为树的基础?
我应该将表达式表示为树吗?如果是这样,我可以轻松地对其进行优化(只需删除返回 0 或其他的节点)。
干杯,
【问题讨论】:
-
这个问题的优秀答案可以在:stackoverflow.com/questions/28256/…
-
我不知道为什么用 C 写会很不幸。我更喜欢这种语言。
-
mrduclaw,我会说这很不幸,因为 OP 对语言不熟悉。对我来说这听起来并不特别讨厌。
-
也许是 lex/yacc/bison
标签: c binary-tree prefix notation infix-notation