如何在前端和后端实现问题答案逻辑

时间:2011-08-26 18:56:17

标签: java algorithm data-structures model logic

在我的网站上,我将以一些答案显示一个主要问题。

因此,如果用户点击其中一个答案,我将再次以相应的答案显示一些问题列表。所以每个答案都会再次遇到一些问题。这个过程一直持续到有一个没有问题的答案。我如何才能在java和html端的服务器端最有效地完成它。如何在某个模型中存储此结构。

如果有人知道任何实现此逻辑的开源项目,请帮助。

1 个答案:

答案 0 :(得分:1)

听起来你需要一棵树:

  • 问题将表示为节点
  • 答案是从一个问题到另一个问题的优势
  • 答案不会导致新问题,只会将目标节点设为null。

在Java中你可以像这样代表它:

class Question {

    // The question, for example "What is the color of the sky?"
    String question;

    // List of answer alternatives: For example
    //     - Blue (with destination, "What is the color of the sun?")
    //     - Red  (with destination null)
    List<Answer> answers;

}


class Answer {

    // The answer, for example "Blue"
    String answer;

    // The next question (or null, if this answer is terminating)
    Question destinationQuestion;
}

要创建这些对象的完整树,您需要

  • 提供每个属性需要一个参数的构造函数

    在这种情况下,您需要从树叶中构建树(因为除非您已经创建了它们,否则无法为中间节点提供参数)

  • 创建“setter”-methods,创建所有问题并“设置”适当的子项。 (这将允许您从根到叶构建树。)


其他替代方案:

  • 如果您想在多个地方重复使用树的某些部分(例如,如果多个答案导致相同的答案),您可以使用DAG(有向非循环图)

  • 如果您想在问题系统中允许循环,可以使用普通有向图。

无论哪种方式,我上面描述的两个类都符合要求!