带决策的Java链表

带决策的Java链表,java,data-structures,linked-list,Java,Data Structures,Linked List,我正试图找到一个数据结构来帮助我建模这个场景 我有一组表达式,有两种类型: 1.具有应执行的计算并返回true或false结果的表达式 2.输出信息且没有返回值的表达式 表达式的顺序取决于计算结果 表达式存储在数据库中,并在运行时加载到数据结构中,该数据结构需要保留表达式的顺序以及根据表达式的结果应遵循的决策 让我用一个简单的例子来说明这一点,其中有4个表达式,前两个是规则,执行时返回值为真或假,但最后2个只是信息性的,因此在执行后,流将继续到下一个表达式 Expression 1: "5+5=

我正试图找到一个数据结构来帮助我建模这个场景

我有一组表达式,有两种类型: 1.具有应执行的计算并返回true或false结果的表达式 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()方法来指向适当的节点(如果表达式有返回值)


有没有建立这种关系模型的方法?

您可以简单地使用二叉树。

您可以简单地使用二叉树。

伪代码:

LinkedList <Map <Integer><Decision>>
这意味着如果
1 ret true
ret 2
否则ret
4

伪代码:

LinkedList <Map <Integer><Decision>>

这意味着如果
1 ret true
那么
ret 2
否则ret
4

你能从较高的表达转到较低的表达吗?e、 表达4:说转到表达2?你能从高表达转到低表达吗?e、 g.表达式4:表示转到表达式2?可能,但每个表达式实际上有三个可能的决定-如果有计算,则为true或false,如果没有计算,则还有一个默认的下一个表达式。@joechip您可以对多选节点使用B树。可能,但实际上有三个每个表达式可能的决定-如果有计算,则为true或false,如果没有计算,则为下一个默认表达式。@joechip您可以将B-树用于多选节点。