내가 C에서 익스트라 프로그램을 구현하고있어 ++ 나는 몇 가지 문제가 있어요, 내가 설명하자 방문 코드는 소스에서 다른 모든 정점으로 전체 경로를 인쇄합니다. 배열을 사용하고 있습니다. int parent [num_vertexs]; 경로를 저장합니다. 그러나 문제는 전체 경로를 원하지 않는다는 것입니다. 첫 번째 꼭지점 만 방문했습니다.익스트라 첫 번째 노드는
첫 번째 노드 만 어떻게 방문 할 수 있습니까? 각 노드에 대해 상위 배열의 첫 번째 노드 만 인쇄하는 방법이 있습니까?
감사합니다.
편집 : 원본 정점에서 다른 모든 정점까지의 전체 경로를 포함하는 상위 배열을 인쇄하는 기능을 보여 드리겠습니다.
void printPath(int parent[], int j){
// Base Case : If j is source
if (parent[j]==-1)
return;
printPath(parent, parent[j]);
printf("%d ", j);
}
이 기능은 전체 경로를 인쇄,하지만 난 단지 경로의 첫 번째 정점을 원한다. 문제는 printf 명령이 전체 경로를 인쇄하기 때문에 각 꼭지점의 첫 번째 행만 인쇄하는 방법을 모른다는 것입니다. 어떻게 할 수 있니? 고맙습니다!
예, 방법이 있습니다. 관련 기능을 질문에 편집하면 변경 방법을 알려줍니다. (우리는 여기에 링크 의존적 인 질문을 좋아하지 않습니다.) – Beta
답장을 보내 주셔서 감사합니다. 게시물을 편집했습니다. 이 기능에서 어떤 변화를해야하는지 말해 주시겠습니까? – flowero