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リストから次の質問を選択します。

このソリューションの 1 つの制限: このツリーを静的に定義する必要があります。

于 2012-10-25T21:12:01.567 に答える