'''이론 컴퓨터 과학 {{{#fff Theoretical Computer Science '''
|
- [ 펼치기 · 접기 ]
이론
| 기본 대상
| 수학기초론(수리논리학(논리 연산) · 계산 가능성 이론 · 범주론 · 집합론) · 이산수학(그래프 이론) · 수치해석학 · 확률론 및 통계학] · 선형대수학
| 다루는 대상과 주요 토픽
| 계산 가능성 이론
| 재귀함수 · 튜링 기계 · 람다 대수 · 처치-튜링 명제 · 바쁜 비버
| 오토마타 이론
| FSM · 푸시다운 · 튜링 머신(폰노이만 구조) · 정규 표현식 · 콘웨이의 생명 게임
| 계산 복잡도 이론
| 점근 표기법 · 튜링 기계^고전, PRAM, 양자, 비결정론적^ · 알고리즘 · 자료구조 · 알고리즘 패러다임(그리디 알고리즘, 동적 계획법)
| 수학적 최적화
| 조합 최적화
| 외판원 순회 문제 · 담금질 기법 · 유전 알고리즘 · 기계학습
| 볼록 최적화
| 내부점 방법 · 경사하강법
| 선형계획법
| 심플렉스법
| 정보이론
| 데이터 압축(무손실 압축 포맷 · 손실 압축 포맷) · 채널 코딩(채널 용량) · 알고리즘 정보 이론(AIT) · 양자정보과학
| 컴퓨팅 방법론
| 병렬 컴퓨팅(병렬 아키텍처 · 암달의 법칙 · 병렬 알고리즘) · 분산 컴퓨팅(분산 알고리즘 · 클러스터 컴퓨팅 · 그리드 컴퓨팅 · 클라우드 컴퓨팅) · 멀티코어 컴퓨팅 · 대칭형 다중 처리(SMP)
| 암호학
| 해시(MD5 · 암호화폐 · 사전 공격(레인보우 테이블) · SHA) · 양자 암호
| 대칭키 암호화 방식
| 블록 암호 알고리즘(AES · ARIA · LEA · Camellia) · 스트림 암호 알고리즘(RC4)
| 공개키 암호화 방식
| 공개키 암호 알고리즘(타원 곡선 암호 · RSA) · 신원 기반 암호 알고리즘(SM9)
| 프로그래밍 언어이론
| 프로그래밍 언어(함수형 언어 · 객체 지향 프로그래밍) · 메타 프로그래밍 · 형식언어 · 유형 이론 · 프로그래밍 언어 의미론 · 컴파일러 이론
| 주요 알고리즘 및 자료구조
| 기초
| 정렬 알고리즘 · 순서도 · 탐색 알고리즘
| 추상적 자료형 및 구현
| 배열^벡터^ · 리스트^연결 리스트^ · 셋(set)^레드-블랙 트리, B-트리^ · 우선순위 큐^힙, 피보나치 힙^
| 계산 수론 및 암호학
| 밀러-라빈 소수판별법 · Pollard-rho 알고리즘 · 쇼어 알고리즘 · LLL 알고리즘
| 계산기하학
| 볼록 껍질 · 들로네 삼각분할 및 보로노이 도형^Fortune의 line-sweeping 알고리즘^ · 범위 탐색^vp-tree, R-tree^ · k-NN
| 그래프 이론
| 탐색^BFS, DFS, 다익스트라 알고리즘, A* 알고리즘^ · 에드몬드-카프 · 크루스칼 알고리즘 · 위상 정렬 · 네트워크 이론
| 정리
| 정지 문제대각선 논법 · 암달의 법칙 · P-NP 문제미해결 · 콜라츠 추측미해결
| 틀:이산수학 · 틀:수학기초론 · 틀:컴퓨터공학
|
|
레드-블랙 트리는 자가 균형 이진 탐색
트리의 일종이다.
레드-블랙 트리의 각 노드는 레드 또는 블랙의 색상을 가지고 있다. 구현의 용이성을 위해, 모든 노드는 자식이 없는 부분에 NIL이라는 가상적인 노드를 자식으로 갖는다고 가정한다. NIL은 블랙이다.
이진 탐색 트리에 다음의 조건을 추가하면 레드-블랙 트리가 된다.
- 노드는 레드 또는 블랙이다.
- 루트 노드는 블랙이다.
- 모든 리프 노드는 블랙이다.
- 레드 노드의 자식은 모두 블랙이다. (루트로부터 리프 노드까지의 경로에 레드 노드가 연이어 올 수 없다.)
- 어떤 노드에서 리프 노드까지의 모든 경로에는 같은 수의 블랙 노드가 있다.
위 조건으로부터, 루트로부터 가장 긴 경로가 가장 짧은 경로의 길이의 두 배를 넘지 않는다. 이를 개략적으로 균형이 잡혀 있다(roughly balanced)고 한다.
삽입, 탐색, 삭제 모두 최악의 경우 O(log n)의 시간 복잡도를 갖는다.
기존 이진탐색트리에서 삽입과 삭제에서 최악의 경우 O(n)의 시간 복잡도를 갖는것을 보완하기 위해 AVL트리가 만들어지고,
그 AVL트리를 더 보완하기 위해 레드-블랙트리가 개발되었다.
일반적인 이진 탐색 트리에 삽입하는 것처럼 한 후, 새 노드(N)을 레드로 칠한다.
이때 4가지 경우로 나뉜다.
- N이 루트 노드이다.
- N의 부모 노드(P)가 블랙이다.
- P가 레드이고 N의 삼촌(U)이 레드이다.
- P가 레드이고 U가 블랙이다.
N이 루트 노드인 경우이다.
조건 2
[A]를 만족시키기 위해 N을 검은색으로 칠한다.
N이 루트 노드이므로 루트로부터 리프 노드까지의 모든 경로에 블랙 노드가 하나 추가되어, 조건 5
[B] 어떤 노드에서 리프 노드까지의 모든 경로에는 같은 수의 블랙 노드가 있다.
는 위반되지 않는다.
P가 블랙인 경우이다.
이때 트리는 모든 조건을 만족한다.
P가 레드이고 U가 레드인 경우이다.
P가 레드이고 U가 블랙인 경우이다.
이 문서의 내용 중 전체 또는 일부는 2023-11-25 10:32:22에 나무위키
레드-블랙 트리 문서에서 가져왔습니다.