我正在创建一个程序来计算 bool 代数方程的真值。我需要找到一个好的数据结构,能够正确处理涉及 AND、OR、NOT 和括号的方程式的运算顺序。方程式将由用户输入。
最佳答案
任何类型的“操作顺序”对象通常保存在 trees 中.它看起来像这样:
- 您首先处理文本表示以找到最高优先级的项目
- 每个简单的语句(例如
true OR false
)将被放入一个节点 - 您可以针对不同的操作使用不同类型的节点
- 节点本身可以插入到其他节点中,以进行复杂的陈述
最终的树表示可能最终看起来像这样:
OR
___|__
| |
true AND
___|___
| |
false NOT
|
true
这将代表声明:
true OR (false AND NOT true)
关于c++ - 什么是处理 bool 代数方程的良好数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307845/