2014-09-08 3 views
1

나는 유향 그래프의 두 특정 노드 사이의 모든 노드를 찾는 알고리즘을 찾고 있습니다. 예를 들어 아래 그래프에서 노드 "a"와 "j"사이의 노드는 다음과 같습니다.유향 그래프의 두 특정 꼭지점 사이의 모든 노드 찾기

b c d e f g h i 

P.S. 그래프는 방향이 지정되고 가장자리는 위 (아래에서 위로)입니다.

enter image description here

+0

이것은 너무 광범위합니다. 지금까지 시도한 것은 무엇입니까? –

+0

"a"에 도달하면 DFS가 중단되지 않습니다. 그러나 "a"에 대한 경로가없는 "p"와 같은 노드를 포함합니다. 이미 이러한 노드를 포함하도록 그래프를 편집했습니다. – user3684042

답변

2

당신은 시작 노드의 노드에 도달 할 수 있으며, 해당 노드가 목적지 노드 t에 도달 할 수있는 노드 세트를 찾고 있습니다. 이를 수행하는 한 가지 방법은 s에서 도달 가능한 모든 노드를 찾기 위해 D에서 D를 수행하고 t에서 역 DFS를 찾아 t에 도달 할 수있는 모든 노드를 찾은 다음 해당 두 세트의 교집합을 취하는 것입니다. 노드 자체에 마크 비트를 저장하여 세트를 유지 관리하는 경우 선형 시간으로 실행됩니다.

희망이 도움이됩니다.

관련 문제