이진 트리

이찬혁·2024년 3월 25일

자료구조

목록 보기
5/11

이진 트리란?

이진 트리는 각 노드의 자식 노드(차수)의 개수가 2 이하로 구성된 트리를 말한다.
트리 영역에서 가장 많이 사용되는 형태이다.

이진 트리의 종류
이진 트리에는 편향 이진 트리, 포화 이진 트리, 완전 이진 트리가 있다.

편향 이진 트리: 노드들이 한쪽으로 편향되어 생성된 이진 트리
포화 이진 트리: 트리의 높이고 모두 일정하며 리프 노드가 꽉 찬 이진트리
완전 이진 트리: 마지막 레벨을 제외하고 완전하게 노드들이 채워져 있고 마지막 레벨은 왼쪽부터 채워진 트리

binary tree

편향 이진 트리 형태는 탐색 속도가 저하되고 공간이 많이 낭비되므로, 일반적으로 코딩 테스트에서 데이터를 트리에 담는다고 하면 완전 이진 트리 형태를 떠올리면 된다

이진 트리의 순차 표현

가장 직관적이면서 편리한 트리 자료구조 형태는 '배열'이다.

트리의 노드와 배열의 인덱스 상관관계

이동 목표 노드인덱스 연산제약 조건(N = 노드 개수)
루트 노드index = 1
부모 노드index = index / 2현재 노드가 루트 노드가 아님
왼쪽 자식 노드index = index * 2index * 2 <= N
오른쪽 자식 노드index = index * 2 + 1index * 2 + 1 <= N

위의 인덱스 연산 방식은 세그먼트 트리, LCA 알고리즘에서 기본이 되는 연산이다.

profile
나의 개발로그

0개의 댓글