- 비선형 구조
→관계를 가지는 원소들이 1 : n, n : n이다
- 원소들 간에 1 : n 관계를 가지는 자료구조
- 원소들 간에 계층관계를 가지는 계층형 자료구조
- 상위 원소에서 하위 원소로 내려가면서 확장되는 트리(나무) 모양의 구조
트리의 원소
한 개 이상의 노드로 이루어진 유한 집합이며 다음 조건을 만족한다.
1) 노드 중 최상위 노드를 루트(root)라고 부른다.
2) 나머지 노드들은 n개의 분리 집합 T1, ... , TN으로 분리될 수 있다.
분리 집합들은 하나의 트리가 되며 루트의 부 트리(subtree) 라고 한다.
- 차수가 2인 트리
- 각 노드가 자식 노드를 최대한 2개까지만 가질 수 있는 트리
- 모든 노드들이 최대 2개의 서브트리를 갖는 특별한 형태의 트리
자식노드의 제한이 없다면 만들 수 있는 방법이 다양해 지지 않고
가변적으로 만들 수 밖에 없어서 비효율적.
자식의 노드 수를 제한해서 그 규칙을 통해 구현을 단순화 할 수 있다.
- 모든 레벨에 노드가 포화 상태로 차 있는 이진 트리
- 높이가 h일 때, 최대 노드개수인 2^(h+1) -1개의 노드를 가진 이진 트리
- 루트를 1번으로 하여 정해진 위치에 대한 노드 번호를 가짐
- 높이가 h, 노드 수가 n개 일 때,
포화 이진 트리의 노드 번호 1번부터 n번까지 빈 자리가 없는 이진 트리
- 높이 h에 대한 최소 개수의 노드를 가지면서 한쪽 방향의 자식 노드만을 가진 이진 트리
- 이진 트리에 노드 번호를 부여해서 논리적으로는 비선형 구조 트리로 사용하지만
물리적으로는 배열에 넣어서 사용할 수 있다.
i/2
2*i
2*i+1
2ⁿ
- 편향 이진 트리의 경우에 사용하지 않는 배열 원소에 대한 메모리 공간 낭비 발생
- 트리의 중간에 새로운 노드를 삽입하거나 기존의 노드를 삭제할 경우 배열의 크기 변경이 어렵다.