0

我想了解用于构建可以根据先前答案跳过问题的调查的算法、数据结构。一个关键要求是算法必须允许一个问题节点可以有多个条目(如下所示,问题 5 可以从问题 1 或问题 3 跳转到)。此外,该算法应该允许插入另一个问题(在 3 和 4 之间插入新问题)

例如

  1. 你是男的吗?(如果是,请跳至 5)。
  2. 你今年多大?
  3. 你有……的历史吗?(如果是,请跳至 5)。
  4. 你住在……附近吗?
  5. 你经历...?
  6. ...
4

2 回答 2

3

你想要的是一个图表。每个图边都有一个遍历条件。

于 2012-10-25T20:58:36.983 回答
0

你需要一个树状结构。这是描述此树中任意节点的简单类:

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

在开始时,您会显示questionText给用户和可能的答案列表。当用户选择答案时,您将结果保留在answer变量中。然后,基于此变量,您从childQuestions列表中选择下一个问题。

此解决方案的一个限制:您必须静态定义此树。

于 2012-10-25T21:12:01.567 回答