2012-10-25 27 views
1

我想了解使用什麼算法,數據結構來構建可以跳過基於先前答案的問題的調查。一個關鍵的要求是算法必須允許一個問題節點可以有多個條目(如下面的問題5可以跳到問題1或問題3)。此外,該算法應該讓另一個問題插入(插入3和4之間新的問題)我可以使用什麼算法來構建調查?

例如

  1. 你是男性? (如果是,請跳至5)。
  2. 你幾歲?
  3. 你有沒有......的歷史? (如果是,請跳至5)。
  4. 你住在...附近嗎?
  5. 您是否遇到...?
  6. ...
+2

在問題之間建立了一個有向圖嗎? – smk

+0

一個有針對性的ACYCLIC圖,即... –

+0

它不是一個算法,它是一個數據結構。 – ldog

回答

3

你想要的是一個曲線圖。每個圖形邊緣都會有一個遍歷條件。

0

您需要樹形結構。下面是簡單的類描述任意節點樹:

class Question { 
    String questionText; 
    List<String> possibleAnswers; 
    int answer; 
    List<Question> childQuestions; 
} 

在開始的時候你展示questionText用戶和可能的答案的列表。當用戶選擇答案時,您保留answer變量的結果。然後,基於這個變量,你從childQuestions列表中選擇下一個問題。

該解決方案的一個限制:您必須靜態定義此樹。

相關問題