<algorithm> 3. DFS
by BFine반응형
DFS
깊이 우선 탐색으로 갈 길을 정해서 갈 수 없을 때 까지 갔다가 돌아오는 것을 의미한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import java.util.ArrayList; public class MyDfs { boolean[] visited; ArrayList<MyEdge>[] graph; public MyDfs(ArrayList<MyEdge>[] graph) { System.out.println("됨?"); this.graph = graph; visited=new boolean[graph.length]; for(int i=0;i<graph.length;i++){ visited[i]=false; } for(int i=0;i<graph.length;i++){ if(!visited[i]){ dfs(i); } } } public void dfs(int i) { visited[i]=true; System.out.print(" "+i+"->"); for(MyEdge e:graph[i]){ if(!visited[e.adj]){ dfs(e.adj); } } } } class MyEdge { int adj; public MyEdge(int adj) { super(); this.adj = adj; } } | cs |
정리
재귀가 들어가서 처음에는 복잡하게 보일 수 있지만 간단하다.
방문하지 않은 정점-> 방문(true) ->출력 -> 방문한 정점의 인접 정점 탐색 -> 재귀
반응형
'공부(2018~2019) - 스킨변경전 > Algorithm' 카테고리의 다른 글
<Algorithm> 6. 2023번 신기한 소수 (0) | 2018.04.11 |
---|---|
<Algorithm> 5. 에라토스테네스의 체 (0) | 2018.04.11 |
<Algorithm> 4. BFS (0) | 2018.04.11 |
<algorithm> 2. 10026번 RGB (0) | 2018.03.30 |
<algorithm> 1. Queue (0) | 2018.02.22 |
블로그의 정보
57개월 BackEnd
BFine