✅ 비선형 자료구조 : i 번째 값을 탐색한 뒤의 i+1이 정해지지 않은 구조
계층적인 자료를 표현하는 데 이용되는 자료구조. 그래프의 한 종류이다.
예) 컴퓨터 directory
출처 : 도서 - 파이썬 알고리즘 인터뷰
노드(Node) : 그래프의 정점
루트 노드 : 트리의 기준이 되는 노드. 나무의 뿌리를 생각하면 된다. 루트 노드에서 가지가 뻗어나가는 이미지.
부모 노드 : 자신과 인접한 노드들 중 루트 노드로 향하는 노드
자식 노드 : 자신과 인접한 노드들 중 루트 노드의 반대 방향으로 향하는 노드
단말 노드 : 자식 노드가 존재하지 않는 노드. 가지의 끝
형제 노드 : 부모 노드가 같은 노드
가지(Branch) : 그래프의 간선. 트리에서는 양방향 간선만 사용한다.
부트리(Sub Tree) : 부분 그래프와 비슷하게 정의한다.
차수(Degree) : 자식 노드의 개수.
길이(Length) : 임의의 두 노드를 시작 노드, 도착 노드로 하는 경로에서 거치게 되는 노드의 수.
깊이(Depth) : 루트 노드에서 해당 노드까지의 길이.
레벨(Level) : 깊이가 같은 노드의 집합.
높이(Height) : 가장 깊이가 깊은 단말 노드까지의 길이. 깊이 중 최댓값
각 노드가 최대 두 개의 자식을 갖는 트리. 즉, 모든 노드의 차수가 2 이하이다.
전 이진 트리(Full Binary Tree)
포화 이진 트리(Perfect Binary Tree)
완전 이진 트리(Complete Binary Tree)
이진 트리 순회 알고리즘
모든 노드가 [ 모든 왼쪽 자식들 < n < 모든 오른쪽 자식들 ]의 특징을 가지는 이진 트리. 같은 값을 가지는 노드는 없다.
이진 탐색 알고리즘
그래프의 한 종류이므로 그래프 구현 방법으로 구현할 수 있다.
인접 배열(행렬) 방식
인접 리스트 방식
참고