공부/자료구조

레드 블랙 트리(red-black tree)란?

셩잇님 2023. 6. 2. 23:25
반응형

 

 

1. 레드 블랙 트리란?

레드-블랙 트리는 삽입과 삭제 중에 균형을 유지하는 자체 균형 바이너리 검색 트리입니다. 빨간색 또는 검은색인 노드 색상의 이름을 따서 명명되었습니다. 레드-블랙 트리는 균형 잡힌 구조를 보장하여 최악의 경우 시간 복잡도가 O(log n)인 효율적인 검색, 삽입, 삭제 작업을 보장합니다.

 

2. 레드 블랙 트리의 속성 및 개념

  • 이진 검색 트리(BST) 속성: 레드-블랙 트리는 이진 검색 트리로, 각 노드에 키 값이 있으며, 어떤 노드의 왼쪽 하위 트리에 있는 키는 해당 노드의 키보다 작고 오른쪽 하위 트리에 있는 키는 더 큽니다.
  • 노드 색상: 빨간색-검정색 트리의 각 노드는 빨간색 또는 검정색으로 표시됩니다. 이 색상은 트리의 속성을 유지하기 위한 균형 메커니즘을 제공합니다.
  • 빨간색-검정색 속성:
    a. 속성 1: 모든 노드가 빨간색 또는 검은색입니다.
    b. 속성 2: 루트 노드는 항상 검은색입니다.
    c. 속성 3: 모든 잎(NIL 또는 널 노드)은 검은색입니다.
    d. 속성 4: 노드가 빨간색이면 그 자식은 모두 검은색입니다.
    e. 속성 5: 각 노드에 대해 해당 노드에서 하위 노드로의 모든 경로에는 동일한 수의 검은색 노드가 포함됩니다.
  • 빨간색-검정색 트리 연산:
    a. 삽입: 빨간색-검정색 트리에 새 노드를 삽입하면 처음에는 노드가 빨간색으로 표시됩니다. 그런 다음 필요에 따라 노드를 회전하고 색을 다시 지정하여 레드-블랙 속성을 유지하도록 트리를 조정합니다.
    b. 삭제: 삽입과 마찬가지로 삭제는 대상 노드를 제거하면서 빨간색-검정색 속성을 유지하기 위해 노드를 재구성하고 색을 다시 지정하는 작업을 포함합니다.
  • 밸런싱: 빨간색-검정색 트리의 균형은 회전과 색상 조정을 통해 이루어집니다. 회전은 균형을 유지하고 검색 순서를 유지하기 위해 부모 노드를 중심으로 노드를 회전하여 트리를 재정렬합니다. 색상 조정은 레드-블랙 속성을 만족하도록 노드의 색상을 다시 지정하는 것입니다.

 

3. 레드 블랙 트리의 장점
레드-블랙 트리의 주요 장점은 구현하기가 쉽습니다. 또한 트리의 높이가 대수가 되도록 보장하여 효율적인 작업을 보장한다는 것입니다. 이로 인해 최악의 경우에도 우수한 성능을 나타냅니다. 자체 균형 속성은 루트에서 리프까지의 경로가 다른 경로보다 훨씬 길지 않도록 보장하여 트리의 균형 잡힌 특성을 유지하는 데 도움이 됩니다. 

 

4. 레드 블랙 트리의 단점

레드-블랙 트리의 단점으로는 다른 데이터 구조보다 복잡하다는 점입니다. 또한 트리에서 최소 또는 최대 요소 찾기와 같은 특정 작업의 경우 다른 데이터 구조보다 느릴 수 있습니다.

 

5. 결론
레드-블랙 트리는 효율적인 맵 또는 집합 데이터 구조 구현, 데이터베이스의 인덱싱, 효율적인 조회 및 저장을 위한 일부 프로그래밍 언어 구현 등 다양한 애플리케이션에서 기본 데이터 구조로 일반적으로 사용됩니다.

 

 

 

반응형

'공부 > 자료구조' 카테고리의 다른 글

해시 테이블(Hash-Table)이란?  (0) 2023.06.03
딕셔너리(Dictionary)란?  (0) 2023.06.02
이진 트리(Binary Tree)란?  (0) 2023.04.02
트리(Tree)란?  (0) 2023.04.01
해시 맵(Hash map)이란?  (0) 2023.03.31