트리의 구조와 특성을 이해하기 위한 주요 용어들:
용어 | 설명 |
---|---|
루트 노드 | 트리의 최상단 노드. 트리의 시작점이며, 단 하나만 존재. |
단말 노드 | 자식 노드가 없는 노드. 잎 노드(Leaf Node) 또는 터미널 노드(Terminal Node)라고도 함. |
비단말 노드 | 자식 노드가 있는 노드. |
조상 노드 | 특정 노드까지의 경로에 있는 모든 상위 노드. |
자식 노드 | 특정 노드에 연결된 바로 다음 단계의 하위 노드. |
형제 노드 | 같은 부모 노드를 공유하는 노드. |
부모 노드 | 특정 노드를 바로 위에서 연결하는 상위 노드. |
레벨(Level) | 트리의 계층 구조를 나타냄. 루트 노드는 레벨 1로 시작하며, 아래로 내려갈수록 레벨 증가. |
깊이(Depth) | 트리의 최대 레벨. 트리의 가장 깊은 노드가 있는 레벨 값. |
차수(Degree) | 특정 노드에서 뻗어나간 가지(자식 노드)의 수. |
트리의 차수 | 트리 전체에서 가장 높은 차수를 가진 노드의 차수. |
서브트리 | 트리의 하위 부분. 특정 노드와 그 자손들로 이루어진 트리. |
포레스트(Forest) | 트리에서 루트 노드를 제거하여 생긴 여러 개의 서브트리 집합. |
트리 구조에서 자주 수행되는 연산들:
연산 | 설명 |
---|---|
삽입 | 트리에 새로운 노드를 추가. |
삭제 | 특정 노드를 트리에서 제거하며, 자식 노드들의 처리를 결정. |
탐색 | 특정 데이터를 가진 노드를 찾기 위해 트리를 순회. |
순회 | 트리의 모든 노드를 방문하는 과정. |
트리 순회 유형 | - 전위 순회 (Preorder): 루트 → 왼쪽 서브트리 → 오른쪽 서브트리 - 중위 순회 (Inorder): 왼쪽 서브트리 → 루트 → 오른쪽 서브트리 - 후위 순회 (Postorder): 왼쪽 서브트리 → 오른쪽 서브트리 → 루트 |
트리는 다양한 분야에서 활용됩니다.
아래는 트리 구조가 사용되는 대표적인 사례들:
활용 분야 | 설명 |
---|---|
디렉토리 구조 | 운영 체제의 파일 및 폴더 구조를 표현. |
HTML 구조 | HTML 문서의 DOM(Document Object Model)을 트리로 표현. |
이진 탐색 트리 | 데이터의 빠른 검색, 삽입, 삭제를 지원. |
네트워크 라우팅 | 라우팅 경로 탐색 및 구성. |
게임 개발 | 게임 상태와 결정 트리. |