N-항 트리 (N-ary tree)
개념
N-항 트리는 각 노드가 최대 N개의 자식을 가질 수 있는 트리 구조이다. N은 임의의 양수로, 각 노드는 0부터 N개까지의 자식을 가질 수 있다.
특징
- 유연한 구조
각 노드가 최대 N개의 자식을 가질 수 있어 파일 시스템, 조직도, 컴파일러의 추상 구문 트리(AST) 등 다양한 계층 구조를 효과적으로 표현할 수 있다.
- 구현의 다양성
자식 노드들은 배열, 리스트, 벡터 등 다양한 자료구조로 관리할 수 있다.
- 확장성
완전 트리, 포화 트리, 균형 트리, 사향 트리 등 다양한 형태의 트리 구조로 확장할 수 있다.
장점
- 복잡한 계층 구조 표현
- 확장성
- 유연한 자식 관리
자식 노드가 많거나 계층 구조가 깊더라도 데이터를 효율적으로 관리할 수 있다.
단점
- 복잡한 구현
이진 트리에 비해 자식 노드 관리가 복잡하며, 삽입/삭제/탐색 등의 연산 구현 난이도가 높다.
- 메모리 사용량 증가
자식 노드의 수가 많아질수록 각 노드가 더 많은 포인터를 저장해야하므로 메모리 사용량이 증가할 수 있다.
- 탐색 효율 저하
마찬가지로 자식 노드가 많을수록 특정 노드를 찾기 위한 탐색 시간이 늘어날 수 있다.
- 균형 유지의 어려움
트리의 균형이 깨지면 탐색 성능이 저하될 수 있으며, 이러한 균형을 맞추는 알고리즘이 복잡하다.