강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Js님의 프로필 이미지
Js

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

DFS (깊이 우선 탐색)

DFS 그래프 질문드립니다.

작성

·

210

0

public void DFS(int now)

        {

            Console.WriteLine(now);

            visited[now] = true; 

            for(int next = 0; next < 6; next++)

            {

                if (adj[now, next] == 0)

                    continue;

                if (visited[next])

                    continue;

                DFS(next);

            }

        }

이 함수에서

1. adj [ 2, 5 ] 까지 for 문을 돌다가 next 값이 6이 되면 그대로 함수를 종료시키지않고 왜 DFS(next); 로 가는건가요??

2. 1번항목에서 DFS(next); 로 돌아갔을때 next 값이 2가 되는이유가 궁금합니다

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

두 질문이 사실상 동일한데 재귀함수의 특성이기 때문입니다.

이런 중첩인형을 생각하시면 됩니다.

0에서 시작한 DFS는,
이어서 인접한 정점 1, 3에서 또 DFS를 돌리게 되고, ...
이런 식으로 파고 파고 들어가는 것이죠.

Js님의 프로필 이미지
Js

작성한 질문수

질문하기