-
깊이가 제한된 깊이 우선 탐색@ 16. 1 ~ 17. 1/자료구조 2015. 9. 29. 21:57
DLDFS라고 불리우며 탐색이 어느 깊이까지 이루어질 것인지를 제어할 수 있다.
흔히 이야기하는 가시성판단?!알고리즘과 비슷하다고 하는데..
주어진 구역과 주어진 시점에서 보이는 다른 구역들을 식별하기 위해서 쓴다.
DepthFirst(Node, depth)
if depth==0 then return
Process(Node)
Mark(Node)
For Every Chlid of Node
If NotMarked(Child)
DepthFirst(Child, depth-1)
End If
End For
End Function
굵은 글씨체로 나타는 코드가 원래의 깊이 우선 탐색과 다른 부분이다.
이 알고리즘은 깊이가 0이면 더이상 처리하지 않고 즉시 반환한다.
이후 함수가 자신을 재귀적으로 호출할 때에는 depth 매개변수에서 -1을 뺀것을 넣는다.
그래야지 주어진 시점에서 그려지는 구역들의 개수를 제한할 수 있다는데..만약 depth값으로 3을 넣으면
3수준까지만 그려지고 나머지는 안그려짐..여기서 3수준은 트리의 3수준이 아니라 3번째 처리겠지..
'@ 16. 1 ~ 17. 1 > 자료구조' 카테고리의 다른 글
C# 자료구조 정리.. (0) 2016.11.18 C# 자료구조 정리좀.. (0) 2016.11.17 그래프(너비우선, 깊이우선) (0) 2015.08.17 우선순위 대기열와 힙 (0) 2015.08.10 이진검색트리 (BST) (0) 2015.08.10