daehyun6549   8년 전

소스코드 달아놨어여ㅎㅎ..

cubalys   8년 전

if ((qu[index].x == x_destination) && (qu[index].y == y_destination)) {
            if (min > qu[index].weight)
                min = qu[index].weight + 1;
        }


index -> level 로 바꾸시면 맞습니다.

index로 검사하게 되면 전에 큐에 넣었던 위 아래 왼쪽 오른쪽중 하나만 검사하므로 틀릴 수 있습니다.

cubalys   8년 전

그리고 Bfs의 경우 깊이가 낮은 노드부터 방문하므로 목적지에 처음 도착했을 때가 최단경로가 됩니다.

if ((qu[level].x == x_destination) && (qu[level].y == y_destination)) {
                min = qu[level].weight + 1;

break;
        }

하셔도 최단 경로를 구할 수 있습니다.


댓글을 작성하려면 로그인해야 합니다.