역방향 주문은 방향이 지시된 비순환 그래프의 위상 분류를 생성합니다. 이 순서는 종종 제어 흐름의 자연 선형화를 나타내기 때문에 제어 흐름 해석에도 유용합니다. 위의 그래프는 아래 코드 조각의 컨트롤 흐름을 나타낼 수 있으며 이 코드를 A B C 또는 A C B D 순서로 고려하는 것은 당연하지만 A B C 또는 A C D B 순서를 사용하는 것은 자연스러운 것이 아닙니다. C [인접 목록]의 «깊이 첫 번째 검색(DFS) 프로그램»에서 57줄의 루프가 잘못 보입니다. G[0]을 NULL로 초기화한 다음 나머지 G[]의 초기화를 완료하기 전에 모든 가장자리를 삽입하기 시작합니다. 두 루프에 변수 `i`를 사용하기 때문에 이미 가장자리를 삽입했기 때문에 중단 된 곳에서 계속되지 않습니다. 문제는 노드보다 가장자리가 적은 경우 인접 성 목록에서 실제로 일부 가장자리를 삭제할 수 있습니다. 우수한 최소 줄 코드. 몇 년 후 나는 몇 가지 C 코드를 사용했다.

나는 9 노드가 81 요소를 입력하고 마침내 모두 사라얻을 그것을 시도했다. 나는이 두 번 시도하고 getch () 남아있는 것을 깨달았다. 이 라인을 삽입 한 후 출력을 볼 수 있었습니다. 그런 다음 내 사용을 위해 VB.net 변환했습니다. 나는 그것이 나를 위해 매우 큰 도움이 될 것이라고 확신합니다. 정말 고마워요. DFS는 그래프 노드의 샘플을 수집하는 데 사용될 수도 있습니다. 그러나 불완전한 DFS는 불완전한 BFS와 마찬가지로 높은 수준의 노드쪽으로 편향됩니다.

위의 코드는 지정된 소스 정점에서 연결할 수 있는 정점만 트래버스합니다. 지정된 정점(예: 연결이 끊긴 그래프)에서 모든 정점에 연결할 수 없습니다. 이러한 그래프의 완전한 DFS 통과를 수행하려면 모든 정점마다 DFSUtil()을 호출해야 합니다. 또한 DFSUtil()을 호출하기 전에 DFSUtil()의 다른 호출에 의해 이미 인쇄되었는지 확인해야 합니다. 다음 구현은 노드에 연결할 수 없는 경우에도 전체 그래프 통과를 수행합니다. 위의 코드의 차이점은 아래 코드에서 강조 표시됩니다. 깊이 첫 번째 검색이 실제로 수행하는 작업을 검토하는 것이 좋습니다. 출력은 깊이 첫 번째 검색 Dijkstra의 – 최단 경로 알고리즘 (SPT) – 인접 목록 및 우선 순위 대기열에 대 한 올바른- 자자바 구현 결국, 우리는 우리의 원래 «부모» 노드에 우리의 방법을 역추적 했습니다 찾을 거 야. 그래서, 우리는 과정을 다시 반복 할 것이다 : 우리는 우리가 이전에 방문하지 않은 그 자녀중 어느 것을 방문 할 수 있는지 확인합니다.