我正在尝试找一个数据结构来帮助我模拟这个场景...
我有一组有两种类型的表达式: 1.具有应该执行的计算并返回真或假结果的表达式 2.打印信息且没有返回值的表达 表达式的顺序依赖于计算结果。
表达式存储在数据库中,并且在运行时将被加载到数据结构中,该数据结构需要保留表达式的顺序以及应该遵循的决策,具体取决于表达式的结果。
让我用一个简单的例子来说明这一点,其中有4个表达式,前两个是执行时具有真或假返回值的规则,但最后的2只是信息性的,因此在执行之后流程将继续到下一个表达。
Expression 1: "5+5=10" If True then go to Expression 2 If False then go to Expression 4
Expression 2: "6+1=7" If True then go to Expression 4 If False then go to Expression 3
Expression 3: "print hello"
Expression 4: "print goodbye"
我的直接想法是,数据结构可能是某种链接列表,不仅需要next()方法指向下一个表达式,而且还需要true()和false()方法指向表达式具有返回值的情况下的适当节点。
有没有既定方法来模拟这种关系?
答案 0 :(得分:3)
您可以简单地使用二叉树。
答案 1 :(得分:0)
伪代码:
LinkedList <Map <Integer><Decision>>
其中:
Integer
- 决定的号码
Decision
- 你的功能
您可以定义Logic
结构,例如:
input 1 2 3 4 5 6
true 2
false 4
这意味着如果1 ret true
然后ret 2
其他人4