//BFS
let storage = [];
let queue = [];
function recursion(node) {
try {
for (let el of node.friends) {
// 친구1의 친구들로 for문 ---2
// 친구2의 친구들로 for문 ---3
if (queue.indexOf(el) === -1) queue.push(el);
// 친구1의 친구들을 큐에 푸시, 현재 큐 : [친구2, 친구1-1, 친구1-2]
// 친구2의 친구들을 큐에 푸시, 현재 큐 : [친구1-1, 친구1-2, 친구2-1, 친구2-2]
}
let pop = queue.shift();
storage.push(pop);
// 현재 큐에 [친구1, 친구2] -- 1
return recursion(pop); // 친구1로 recursion ----1
//친구2로 recursion ----2
// 이렇게 계속 BFS
} catch (e) {}
} let stack = [];
function recursion(node) {
try {
// 제공 받은 노드의 친구들을 스택에 넣고
// 쌓은 스택의 맨 끝에 있는 것을 pop(FILO)
// 그 맨끝에 있는 노드의 친구들을 스택에 넣고
// 다시 쌓은 스택의 맨 끝에 있는 것을 pop .....
for (let el of node.friends) {
if (stack.indexOf(el) === -1) stack.push(el);
}
let pop = stack.pop();
return recursion(pop);
} catch (e) {};
}DFS는 다시 도전해봐야할 것 같다..ㅎㅎ