// Depth-first Search(깊이 우선 탐색)
// 1. Pre-Order traversal(전위 순회)
preOrder() {
const finalData = [];
function traverse(node) {
//finalData.push(node); 순서출력 아니니 필요없을 듯
if(node.left) {
//여기에 if(클래스, 아이디, 요소가 맞다) return
traverse(node.left);
}
if(node.right) {
//여기에 if(클래스, 아이디, 요소가 맞다) return
traverse(node.right);
}
}
traverse(this.root);
return finalData;
}
//리턴 대신 배열에 찾은 걸 넣게해서 완전 탐색하면 querySelectAll
bfs() {
let node = this.root;
let queue = [node];
let finalData = [];
while(queue.length) {
node = queue.shift();
if(node.left) {
queue.push(node.left);
}
if(node.right) {
queue.push(node.right);
}
finalData.push(node.data);
}
return finalData;
}
1분으로 보는 DFS/BFS 구현 방법
JavaScript로 Tree 구현하고 BFS, DFS로 탐색하기
챕터7-2. 트리 | 순회방법(전위, 중위, 후위)
사진, 코드 : ukcasso code(중위, 후위도 있음) - 이 사이트가 이해 제일 잘 됨