
DFS vs BFS 한 눈에 이해하기
DFS vs BFS 한 눈에 이해하기



int n = 14;
List<Integer>[] node = new List[n + 1];
for (int i = 0; i <= n; i++) {
node[i] = new ArrayList<Integer>();
}
node[8].add(3);
node[8].add(10);
node[3].add(1);
node[3].add(6);
node[10].add(14);
node[6].add(4);
node[6].add(7);
node[14].add(13);
boolean[] searchCheck = new boolean[n + 1];
Stack<Integer> searchQueue = new Stack<>();
searchQueue.add(8);
while (!searchQueue.isEmpty()) {
int curPoint = searchQueue.pop();
searchCheck[curPoint] = true;
for (Integer nextPoint : node[curPoint]) {
if (!searchCheck[nextPoint]) {
searchQueue.add(nextPoint)
}
}
}