2009-03-26 2 views

답변

12

글쎄 나무는 방향성이있는 비정상 그래프 라 불리는 특별한 유형의 그래프입니다. 그렇습니다. 넓이 우선과 깊이 첫 번째 탐색은 모두 나무에서 작동합니다.

너비와 깊이의 차이에 대한 자세한 설명을 작성할 수는 있지만 잘못 입력 한 것일 수 있습니다.

너비와 깊이 우선 탐색의 유일한 차이점은 정점을 처리하는 순서입니다. 처음에는 "처리 할"큐에 정점을 추가하는 것으로 생각할 수 있습니다. 우선 깊이는 "처리 될 스택"에 정점을 추가하는 것으로 생각할 수 있습니다. 정점을 처리 할 시간이 왔을 때 (각 데이터 구조에 추가 된 후에) 다음 정점을 처리하기 위해 스택에서 대기열을 제거하거나 팝합니다. 영리한 버전의 깊이 우선 탐색은 스택에 추가하는 대신 정점을 처리하기 위해 재귀를 사용합니다.

나는이 도움이 아닌지 여부 아무 생각 ...이 없다

빠른 구글 검색의 차이점을 설명 꽤 잘 보인다 this을 찾아 (나는 그것이 폭과 깊이를 먼저인지 모른다) BFS 및 DFS. 더 깊이 읽으려면 Steve Skiena의 The Algorithm Design Manual을 추천 할 수도 있습니다.

+0

답해 주셔서 감사합니다! 그러나 BF와 DF의 차이점을 보여주기 위해 약간 확장 할 수 있습니까? –

+0

나무가 흐트러지지 않았습니까? –

+0

@DominikAntal 트리가 단독으로 지시됩니다. 노드는 자식 노드에서 부모 노드로가 아니라 자식 노드에 대한 참조 만 가질 수 있습니다. – cbradsh1

2

일반 트리를 탐색 할 수있는 함수는 트리를 탐색 할 때 과도 할 수 있습니다. 순수 트리에서는주기를 확인할 필요가 없기 때문입니다. 그렇게하면 효과가 있지만 더 간단 할 것입니다.

+0

LOL. 다른 방법으로 생각하는 경향이 있습니다. 그래프는 순환을 포함 할 수 있으므로 번거 로움입니다. – dmckee

+0

실제로 사람들이 나무로 시작한 다음 Unix 파일 시스템 에서처럼 심볼릭 링크와 비슷한 것을 소개하기 때문에 두 가지를 밀접하게 연결하는 것이 좋습니다. 갑자기 그래프 대신에 진정한 나무, 당신의 재귀 알고리즘은 날아갑니다. –