[javascript] 트리 (Tree) 데이터 구조

트리는 계층적인 데이터를 나타내는 일반적인 데이터 구조입니다. 트리는 부모-자식 관계로 이루어진 노드들의 집합으로 표현됩니다.

이진 트리 (Binary Tree)

이진 트리는 각 노드가 최대 두 개의 자식 노드를 가지는 트리입니다. 각 노드는 왼쪽 자식 노드와 오른쪽 자식 노드를 가질 수 있습니다.

class Node {
  constructor(value) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}

이진 트리의 노드는 위와 같이 JavaScript 클래스로 구현할 수 있습니다.

이진 탐색 트리 (Binary Search Tree)

이진 탐색 트리는 모든 왼쪽 자식 노드의 값이 해당 노드의 값보다 작고, 모든 오른쪽 자식 노드의 값이 해당 노드의 값보다 큰 이진 트리입니다. 이러한 속성으로 인해 효과적인 탐색이 가능합니다.

function insertNode(root, value) {
  if (!root) {
    return new Node(value);
  }

  if (value < root.value) {
    root.left = insertNode(root.left, value);
  } else if (value > root.value) {
    root.right = insertNode(root.right, value);
  }

  return root;
}

위의 예제는 이진 탐색 트리에 노드를 삽입하는 JavaScript 함수를 보여줍니다.

이처럼 트리는 다양한 응용 분야에서 효율적인 데이터 구조로 활용됩니다.

참고 문헌

위 참고 문헌에서 더 많은 내용을 찾아볼 수 있습니다.