Tree

sungs·2025년 6월 17일

자바

목록 보기
14/95

📌 트리(Tree)란?

트리는 계층적으로 데이터를 구성할 수 있는 비선형 자료구조. 노드(Node)들로 이루어져 있고, 노드 간에는 부모-자식 관계가 존재한다.

  • 루트(Root): 트리의 가장 위에 있는 노드

  • 리프(Leaf): 자식이 없는 노드

  • 간선(Edge): 노드를 연결하는 선

  • 서브트리(Subtree): 특정 노드를 루트로 하는 하위 트리

🧾 트리의 종류

트리 종류설명
이진 트리 (Binary Tree)모든 노드가 최대 2개의 자식을 가짐
이진 탐색 트리 (BST)왼쪽 자식 < 부모 < 오른쪽 자식 조건을 만족
힙 (Heap)완전 이진 트리 + 특정 조건(최대/최소값) 유지
균형 트리 (AVL, Red-Black Tree)삽입/삭제 후에도 균형을 유지
트라이(Trie)문자열 검색/자동완성에 유용한 트리

✅ 사용 예시

public class Main {
    public static void main(String[] args) {
        BinarySearchTree bst = new BinarySearchTree();
        bst.insert(8);
        bst.insert(3);
        bst.insert(10);
        bst.insert(1);
        bst.insert(6);
        bst.insert(14);

        System.out.print("중위 순회 결과: ");
        bst.inorder(); // 1 3 6 8 10 14
    }
}

🧠 트리 자료구조의 활용 예

  • 파일 시스템 구조

  • HTML/DOM 구조

  • 데이터베이스 인덱스 (B-Tree, B+ Tree)

  • AI 의사결정 트리

  • 문자열 검색 (Trie)

🪵 마무리

트리는 개념 자체는 단순하지만 활용도가 매우 높은 자료구조이다. 특히 자바에서는 TreeMap, TreeSet, 또는 위에서 본 것처럼 직접 트리를 구현하는 방식으로 트리를 사용할 수 있다.

profile
앱 개발 공부 중

0개의 댓글