공부/알고리즘 문제
DFS 스택으로 구현, 루트 노드부터, 리프 노드부터
_eun
2021. 5. 3. 23:36
루트 노드부터 순회
while (stack.length != 0) {
let [current, parent] = stack.pop();
visited[current] = true;
for (let child of nodeList[current]) {
if (!visited[child]){
// 수행할 일
stack.push([child, current]);
}
}
}
리프 노드부터 순회
while (stack.length != 0) {
let [current, parent] = stack.pop();
if (visited[current]) {
// 수행할 task
continue;
}
stack.push([current, parent]);
visited[current] = true;
for (let child of nodeList[current]) {
if (!visited[child]) stack.push([child, current]);
}
}
728x90