【发布时间】:2010-04-01 04:41:53
【问题描述】:
我想在 C++ 中计算一个表达式。为了评估它,我希望将表达式转换为前缀格式。
这是一个例子
wstring expression = "Feature1 And Feature2";
以下是可能的方法。
expression = "Feature1 And (Feature2 Or Feature3)";
expression = "Not Feature1 Or Feature3";
这里And、Or、Not是保留字和括号(“(”、 )) 用于范围
不具有更高的优先级
And 将下一个优先级设置为 Not
Or 设置为 And 的下一个优先级
WHITE SPACE 用于分隔符。表达式没有其他元素,如 TAB、NEWLINE
我不需要算术表达式。我可以进行评估,但有人可以帮我将字符串转换为前缀表示法吗?
【问题讨论】:
-
按照惯例,TAB 和 NEWLINE 是 WHITESPACE 的类型。你真的是说空格字符吗?请用该信息澄清您的问题。
-
将中缀转换为前缀是一项巧妙的家庭作业,但在现实世界中却毫无用处。选项:(A) 解析中缀并执行 (B) 解析中缀,转换为前缀,生成前缀,解析前缀,执行。即使解析前缀更容易,转换过程也更慢。
标签: c++ expression prefix infix-notation