ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 깊이가 제한된 깊이 우선 탐색
    @ 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
Designed by Tistory.