한 개 이상의 노드로 이루어진 사이클이 없는 연결그래프
계층적인 구조를 표현할 때 사용할 수 있는 자료구조
(트리의 노드개수가 N개일 때, 전체 간선의 수는 N-1개)
루트노드 : 부모가 없는 최상위 노드
단말노드 : 자식이 없는 노드
크기 : 트리에 포함된 모든 노드의 개수
깊이 : 루트노드부터의 거리
높이 : 깊이 중 최댓값
차수 : 각 노드의 간선 개수
이진 탐색이 동작할 수 있도록 고안된 효율적인 탐색이 가능한 자료구조
왼쪽 자식노드 < 부모 노드 < 오른쪽 자식노드
검색과 저장, 삭제의 시간복잡도는 모두 O(logn), worst case는 한쪽으로 치우친 트리가 됐을 때 O(n)
저장과 동시에 정렬을 하는 자료구조
BST의 worst case 시간 복잡도는 O(n)이고 균형이 깨져서 한쪽으로 치우친 BST의 경우 linked list와 같아지며 탐색시에 O(n)이 된다.
트리의 자료구조에 포함된 노드를 특정한 방법으로 한번씩 방문하는 방법
트리의 정보를 시각적으로 확인
전위순회 : 루트를 먼저 방문
중위순회 : 왼쪽자식을 방문하고 루트를 방문
후위순회 : 왼쪽자식, 오른쪽 자식, 루트 방문
=> 후위 순회
vertex와 dege로 구성