2012-06-29 4 views
-2

주어진다 때 주어진 철도 stations-최단 경로 에지 웨이트

가 기차역을 나타내며, 가장자리의 거리로 간주되는 노드들 사이의 최단 거리를 찾을 수있다. 나는 최소 거리를 계산해야한다. 내가 사용하고있는 논리에 약간의 오류가있다.

여기 제가 시도한 코드입니다. 하지만 나는 두 지점 사이에 최단 경로를 얻지 못하고있다. 콘솔을 구현하려면 : 해결책은 1과 3 사이의 최소 거리를 제공해야합니다. 예를 들어 다음과 같은 경우가 있습니다. WGT 총 4 개를 갖는 3-5과 2 WGT했다 1 내지 2에서 경로 (9)이며, 그 frst 경로가 선택되어야 WGT (10)과 1 내지 3 사이의 직접 경로가있을 수

steps=[ 
    {from:1, to:8}, 
    {from:1, to:2}, 
    {from:2, to:7}, 
    {from:7, to:9}, 
    {from:8, to:9} 
]; 

function calc_route(start, end, data) 
{   
    console.log(start+", "+end); 
    console.log(data);    
    for(var i=0; i<data.length; i++) 
    { 

     if(data[i].to == end && data[i].from == start) 
     { 
      console.log("Return");     
      console.log(data[i]); 
      return data[i]; 
     } 
     else 
     { 
      if(data[i].from == start) 
      {      
       calcfor = data.splice(i, 1);          
       calc_route(calcfor[0].topoint, end, data); 
      } 
     } 
    } 
} 
+4

이 숙제입니까? –

+0

숙제가 아닙니다. 나는 그것을 직접 해결하려고 노력 중이다 .......... djkshrtas 알고리즘의 예 – Sree

+0

이것은 오늘 이전에 물어 본 질문의 정확한 중복이며 계정 기록의 모습에서 이제 삭제되었습니다. . 이것은 스택 오버플로 사용자가 원하는 동작이 아닌 ***입니다. – Matt

답변

3

Dijkstra의 알고리즘을 살펴 봐야합니다. http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

자바 스크립트로 구현을 찾아서 이미 테스트 한 코드를 다시 사용하십시오.

+0

javascript에서 테스트 코드를 찾았습니다 @Phillip Nordwall – Sree

+0

@Sree, 다른 사람들이 다른 언어로 구현 한 코드를 읽고 그 코드를 이해하면 자바 스크립트 코드를 작성하는 데 같은 아이디어를 사용하십시오. 원본 버전, 즉 코드의 특정 부분에 대해 궁금한 점이있는 경우 언제든지 문의하십시오. –

+0

괜찮 았어 .. 고마워 .. 아프다. 잠시 후 돌아온다. – Sree

0

http://en.wikipedia.org/wiki/A*_search_algorithm 빠른 구글은 당신에게 이미 구현 결과를 많이 줄 것이다 ... 당신이 구현해야 무엇 A * 알고리즘 것 같다.

+0

내 기능에서이 골동품을 이미 구현했다. – Sree

+0

@Sree - 아니, 그런 종류의 일은하지 않았다. – Deestan

관련 문제