Java - 带有决策的链接列表

时间:2012-09-28 07:01:20

标签: java data-structures linked-list

我正在尝试找一个数据结构来帮助我模拟这个场景...

我有一组有两种类型的表达式: 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()方法指向表达式具有返回值的情况下的适当节点。

有没有既定方法来模拟这种关系?

2 个答案:

答案 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