2012-09-28 117 views
0

我試圖找到一個數據結構來幫助我,這場景模型鏈表...爪哇 - 與決策

我有一組表達式有兩種類型: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()方法以指向下一個表達式也真()和false()方法在表達式具有返回值的情況下指向適當的節點。

是否有這種關係的任何模型建立方法是什麼?

+0

你可以從較高的表達去下espression?例如表達式4:說去表達式2? – Azodious

回答

3

你可以簡單地用一個二叉樹。

+0

可能的,但實際上有每個表達式三種可能的決定 - 真或假,如果有一個計算,但也默認下一個表達式去在事件沒有計算。 – joechip

+0

@joechip您可以爲多選節點使用B-Tree。 – Justin

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