dev_eun

DFS 스택으로 구현, 루트 노드부터, 리프 노드부터 본문

공부/알고리즘 문제

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