2012-10-25 3 views
1

이전 알고리즘을 기반으로 질문을 건너 뛸 수있는 설문 조사를 작성하는 데 사용할 알고리즘, 데이터 구조에 대해 배우고 싶습니다. 핵심 요구 사항은 질문 노드가 여러 항목을 가질 수 있도록 허용해야한다는 것입니다 (아래 질문 5는 질문 1 또는 질문 3에서 건너 뛸 수 있음). 또한,이 알고리즘은 또 다른 질문의 삽입 예를 들어설문 조사를 작성하는 데 사용할 수있는 알고리즘은 무엇입니까?

(3과 4 사이에 새로운 질문을 삽입) 허용해야

  1. 당신은 남자인가? (그렇다면 5로 건너 뜁니다).
  2. 몇 살입니까?
  3. 당신은 ...의 역사가 있습니까? (그렇다면 5로 건너 뜁니다).
  4. 근처에 살고 있습니까?
  5. 경험 하시겠습니까?
  6. ...
+2

질문 사이에 방향성 그래프를 만들었습니까? – smk

+0

지시 된 ACYCLIC 그래프, 즉 ... –

+0

과 그 알고리즘이 아니라 그 데이터 구조. – ldog

답변

3

은 당신이 원하는 것은 그래프이다. 각 그래프 가장자리는 순회 조건을 갖습니다.

0

나무와 같은 구조가 필요합니다.

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

시작 당신이 사용자와 가능한 답변 목록에 questionText 보여 여기이 나무에서 임의의 노드를 설명하는 간단한 클래스입니다. 사용자가 대답을 선택하면 answer 변수에 결과가 유지됩니다. 그런 다음이 변수를 기반으로 childQuestions 목록에서 다음 질문을 선택합니다.

이 솔루션에 대한 한 가지 제한 사항은이 트리를 정적으로 정의해야한다는 것입니다.

관련 문제