package main01;
import java.util.ArrayList;
import java.util.List;
public class Main {
int[][] adj = {
{1, 9},
{0, 2, 3, 5, 7},
{1, 3, 4, 5},
{1, 2},
{2},
{1, 2, 6},
{5},
{1, 8, 9},
{7},
{0, 7}
};
List<Boolean> visited;
public static void main(String[] args) {
new Main().dfsAll();
}
void dfsAll() {
visited = new ArrayList<>();
for (int i = 0; i < adj.length; i++) {
visited.add(false); // visited 모두 false로 초기화
}
// 모든 정점을 순회하면서, 아직 방문한 적 없으면 방문하기.
for (int i = 0; i < adj.length; i++) {
if (!visited.get(i)) {
dfs(i);
}
}
// for (int i = 0; i < visited.size(); i++) {
// System.out.println(i + "");
// }
}
void dfs(int here) {
System.out.println("DFF visits " + here);
visited.add(here, true);
for (int i = 0; i < adj[here].length; i++) {
int there = adj[here][i];
// 아직 방문한 적이 없다면 방문한다.
if (!visited.get(there)) {
dfs(there);
}
}
}
}
'알고리듬에 몸을 맡겨라!' 카테고리의 다른 글
문자열 검색 전체 알고리즘 (0) | 2021.06.19 |
---|---|
문자열 검색 (0) | 2021.06.13 |
자바와 비트마스크, BitSet (0) | 2021.04.24 |
비트마스크 (2) (0) | 2021.04.23 |
비트마스크 (1) (0) | 2021.04.23 |