2014-01-27 3 views
0

각 작업이 다음 및 이전 작업 ID로 구성되어있는 xml 작업이 있습니다. XML 데이터를 기반으로 모든 작업을 Double Linked List 메모리로로드 한 다음 DLL을 실행해야합니다. 다음은 샘플 xml입니다. 여러 개의 다음 노드가있는 이중 연결된 목록

<task id="1"> 
    <name>start</name> 
    <task-class>dk.framework.task.StartTask</task-class> 
    <task-type>start-task</task-type> 
    <previous-task>0</previous-task> 
    <next-task>2</next-task> 
</task> 
<task id="2"> 
    <name>validation</name> 
    <task-class>dk.framework.task.UserValidationTask</task-class> 
    <task-type>java-task</task-type> 
    <previous-task>1</previous-task> 
    <next-task>3</next-task> 

</task> 
<task id="3"> 
    <name>isSuccess</name> 
    <task-class>dk.framework.task.BasicCondition</task-class> 
    <task-type>condition-task</task-type> 
    <previous-task>2</previous-task> 
    <conditions> 
     <condition response="TRUE"> 
      <next-task>5</next-task> 
     </condition> 
    <conditions> 
    <conditions> 
     <condition response="FALSE"> 
      <next-task>4</next-task>    
     </condition> 
    <conditions> 

</task> 

<task id="4"> 
    <name>RetunErrorMessafe</name> 
    <task-class>dk.framework.task.ErrorMessage</task-class> 
    <task-type>message-task</task-type> 
    <previous-task>3</previous-task> 
    <next-task>7</next-task> 
</task> 
<task id="5"> 
    <name>InsertAudit</name> 
    <task-class>dk.framework.task.InsertAudit</task-class> 
    <task-type>java-task</task-type> 
    <previous-task>3</previous-task> 
    <next-task>6</next-task> 
</task> 

내가 할 수있는 다음 - 작업 및 이전 작업을 기반으로 두 번 링크 된 목록에이 작업을로드하지만, 작업 ID를 "3"내가 모두 4와 5를 기반으로 다음 노드를 확인해야 할 수 조건. 어느 누구도이 문제에 도움이 될 수 있습니까?

+0

작업에 후속 작업보다 많은 작업이있을 수있는 경우에는 목록을 사용할 수 없습니다. 목록에서 모든 요소는 최대 하나의 요소와 하나의 요소를 가질 수 있습니다. 트리 구조를 사용해야합니다. 무엇을 요구하고 있습니까? XML을 구문 분석하는 방법 또는 결과를 저장할 데이터 구조는 무엇입니까? – alexraasch

+0

xml 데이터를 유지하기위한 데이터 구조 ... – Vinesh

+0

OK, 모든 작업에 다음 작업이 하나 이상없는 경우 이중 연결 목록을 사용할 수 있습니다. – alexraasch

답변

0

그 자체로 문제는 정의에 의한 목록, 정렬 된 컬렉션이 아닙니다. 그것은 "DAG"이어야합니다 (순환 그래프가있는 경우).주기가 있으면 문제가 발생합니다. 일반적으로이 DAG 문제의 목록 (실행 가능한 작업 목록)을 찾기 위해 모든 횡단 알고리즘을 적용 할 수 있으며 원하는 것일 수도 있습니다. 그러나 때로는 더 복잡 할 수 있습니다. 실천 순서 (계획 및 스케줄)에 관해 IA 관심사의 전체적인 부분이 있습니다.

관련 문제