2021. 10. 3. 14:39ㆍ알고리즘 및 자료구조
Red Blacke Tree는 Binary Search Tree(이진 탐색 트리)에서 skewed tree(편향된 트리) 한마디로 균형이 잡히지 않고 한쪽으로만 노드가 다 몰리게 되면 시간복잡도가 O(n)이 되는데 이러한 점을 해결하기 위해 나왔다.
=> 이 트리는 search , insert, delete 모두 O(log n)의 시간 복잡도를 가진다.
Red Black Tree의 특징
1. 이 트리의 노드들은 모두 red이거나 black이다.
2. Root 노드와 leaf노드들은 black 이다.
3. 만약 노드가 red이면 그 노드들의 child노드들은 모두 black이다.
4. 자식노드가 없는 노드의 경우(leaf node)를 Nil 노드라고 부른다.
5. 한 노드에서 nil노드까지 갈때 나오는 Black 노드의 개수는 같다.
6. 모든 노드들은 black height이 있다.
Black Height => Root 노드에서 Nil노드까지 갈때 나오는 Black노드의 갯수
그 외의 특징
- 노드들은 색을 보관하기 위한 1 bit공간이 필요하다.
- root node에서 nil node까지 가장 긴 경로와 가장 짧은 경로는 2배 밑으로 차이난다.
즉, 가장 짧은경로: 다 black node
가장 긴 경로: black & red 섞여있음
참고자료
https://www.youtube.com/watch?v=qvZGUFHWChY&t=125s
https://velog.io/@ehehdgus11/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Red-Black-Tree-1
'알고리즘 및 자료구조' 카테고리의 다른 글
[자료구조] Trie Tree(트라이 트리) (0) | 2021.10.03 |
---|---|
[자료구조]이진 힙(Binary Heap) (0) | 2021.10.03 |
[자료구조] 트리(tree) (0) | 2021.10.03 |