알고리즘 2분 읽기
이진 트리 순회
코드를 짠다고 하면 다음과 같이 됩니다.
이진 트리 순회
이진 트리의 데이터를 가져오는 방법에는 다음과 같이 크게 3가지가 있습니다.
- 중위 순회(Inorder)
- 전위 순회(Preorder)
- 후위 순회(Postorder)
중위 순회
중위 순회는 트리를 순회할 때 다음과 같은 방식으로 순회하는 것을 의미합니다.
- Left child
- Root (자기 자신을 의미)
- Right child
코드를 짠다고 하면 다음과 같이 됩니다.
function inorder(node){
if(node !== null){
inorder(node.left);
console.log(node.value);
inorder(node.right);
}
}
재귀로 구현이 되고, 코드를 보면 왼쪽 노드가 있는 경우 계속해서 내려가게 됩니다.
전위 순회
전위 순회는 다음과 같은 방식으로 트리를 순회합니다.
- Root (자기 자신을 의미)
- Left child
- Right child
코드를 짠다고 하면 다음과 같이 됩니다.
function preorder(node){
if(node !== null){
console.log(node.value);
preorder(node.left);
preorder(node.right);
}
}
재귀를 돌기 전에 자기 자신을 먼저 출력하는 모습을 볼 수 있습니다.
후위 순회
후위 순회는 다음과 같은 방식으로 순회하게 됩니다.
- Left child
- Right child
- Root (자기 자신을 의미)
function postorder(node){
if(node !== null){
postorder(node.left);
postorder(node.right);
console.log(node.value);
}
}
후위 순회는 자기 자신 데이터를 출력하는 것이 가장 마지막이 됩니다.