我想了解用于构建可以根据先前答案跳过问题的调查的算法、数据结构。一个关键要求是算法必须允许一个问题节点可以有多个条目(如下所示,问题 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
列表中选择下一个问题。
此解决方案的一个限制:您必须静态定义此树。