본문 바로가기
자료구조와 알고리즘/자료구조

트리

by oncerun 2020. 9. 2.
반응형

1. 트리 구조

 

트리 : Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조입니다.

 

실제로는 이진트리 (Binary Tree) 형태의 구조로, 탐색 알고리즘 구현을 위해 많이 사용됩니다.

 

2. 용어

 

Node : 트리에서 데이터를 저장하는 기본 요소(데이터와 다른 연결된 노드에 대한 Branch 정보 포함)

Root Node : 트리 맨 위에 있는 노드

Level : 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄

Parent Node : 어떤 노드의 다음 레벨에 연결된 노드

Child Node : 어떤 노드의 상위 레벨에 연결된 노드

Leaf Node (Terminal Node): Child Node가 하나도 없는 노드

Sibling (Brother Node) : 동일한 Parent Node를 가진 노드

Depth : 트리에서 Node가 가질 수 있는 최대 Level

이진트리와 이진 탐색 트리

 

이진트리: 노드의 최대 Branch가 2인 트리

이진 탐색 트리 : 이진 트리에 다음과 같은 추가적인 조건이 있는 트리

 - 왼쪽 노드는 해당 노드보다 작은 값, 오른쪽 노드는 해당 노드보다 큰 값

 

이진 탐색 트리의 시간 복잡도와 단점

 

탐색 시

 

depth를 h라 표기한다면 O(h)

n개의 노드를 가진다면 h = logn에 가까우므로 시간 복잡도는 O(logn)

즉 50%씩 단축

 

만약 트리 구성이 잘못되어있을 경우 O(n) 시간 복잡도를 나타냄

반응형

'자료구조와 알고리즘 > 자료구조' 카테고리의 다른 글

  (0) 2020.09.03
해쉬 테이블  (0) 2020.09.02
링크드 리스트  (0) 2020.08.26
스택  (0) 2020.08.18
큐 (Queue)  (0) 2020.08.17

댓글