我想了解使用什麼算法,數據結構來構建可以跳過基於先前答案的問題的調查。一個關鍵的要求是算法必須允許一個問題節點可以有多個條目(如下面的問題5可以跳到問題1或問題3)。此外,該算法應該讓另一個問題插入(插入3和4之間新的問題)我可以使用什麼算法來構建調查?
例如
- 你是男性? (如果是,請跳至5)。
- 你幾歲?
- 你有沒有......的歷史? (如果是,請跳至5)。
- 你住在...附近嗎?
- 您是否遇到...?
- ...
我想了解使用什麼算法,數據結構來構建可以跳過基於先前答案的問題的調查。一個關鍵的要求是算法必須允許一個問題節點可以有多個條目(如下面的問題5可以跳到問題1或問題3)。此外,該算法應該讓另一個問題插入(插入3和4之間新的問題)我可以使用什麼算法來構建調查?
例如
你想要的是一個曲線圖。每個圖形邊緣都會有一個遍歷條件。
您需要樹形結構。下面是簡單的類描述任意節點樹:
class Question {
String questionText;
List<String> possibleAnswers;
int answer;
List<Question> childQuestions;
}
在開始的時候你展示questionText
用戶和可能的答案的列表。當用戶選擇答案時,您保留answer
變量的結果。然後,基於這個變量,你從childQuestions
列表中選擇下一個問題。
該解決方案的一個限制:您必須靜態定義此樹。
在問題之間建立了一個有向圖嗎? – smk
一個有針對性的ACYCLIC圖,即... –
它不是一個算法,它是一個數據結構。 – ldog