트리의 각 노드에 대해 트리에서 리프 노드까지의 가장 긴 경로가 가장 짧은 경로보다 두 배 이상 길지 않으면 트리는 빨간색 검정색으로 표시됩니다.
다음은 모든 노드의 색상을 파악하는 알고리즘입니다 n
if n is root,
n.color = black
n.black-quota = height n / 2, rounded up.
else if n.parent is red,
n.color = black
n.black-quota = n.parent.black-quota.
else (n.parent is black)
if n.min-height < n.parent.black-quota, then
error "shortest path was too short"
else if n.min-height = n.parent.black-quota then
n.color = black
else (n.min-height > n.parent.black-quota)
n.color = red
either way,
n.black-quota = n.parent.black-quota - 1
여기에 n.black-quota
당신이 노드에서, 잎에 갈 것으로 예상 검은 색 노드의 수 n
와 n.min-height
가장 가까운 잎까지의 거리입니다.
간결한 표기법을 위해 , h ( n ) = 및 m ( n ) = 이라고하자 .b(n)= n.black-quota
h(n)= n.height
m(n)= n.min-height
정리 : 이진 트리 수정하십시오 . 모든 노드 n ∈ T , h ( n ) ≤ 2 m ( n ) 및 노드 r = 루트 ( T ) 인 경우 b ( r ) ∈ [ 1Tn∈Th(n)≤2m(n)r=root(T),T는루트에서 잎까지 모든 경로에정확히b(r)검은 색 노드가있는 적-흑색을 띤다.b(r)∈[12h(r),m(r)]Tb(r)
증명 : 대한 유도 .b(n)
높이가 1 또는 2 인 4 개의 나무가 모두 정리를 만족하는지 확인하십시오 .b(n)=1
레드 블랙 트리의 정의에 따르면 루트는 검은 색입니다. 하자 검정 부모 노드와 수 P 되도록 B ( P ) ∈ [ 1np. 이어서, B(N)=B(P)-1,H(N)=H(P)-(1)및H(N)≥m(N)≥m(P)-1.b(p)∈[12h(p),m(p)]b(n)=b(p)−1h(n)=h(p)−1h(n)≥m(n)≥m(p)−1
정리가 루트 , b ( r ) < b ( q ) 인 모든 트리에 대해 정리를 가정합니다 .rb(r)<b(q)
경우 다음 N 유도 가정하여 컬러 레드 - 블랙 일 수있다.b(n)=m(n)n
만약 ,b(n)=⌈1b(p)=12h(p). n은 귀납적 가정을 만족시키지 않으므로 적색이어야합니다. 하자가c는의 자식N. h(c)=h(p)−2및 b(c)=b(p)−1=1b(n)=⌈12h(n)⌉−1ncnh(c)=h(p)−2. 그러면c는 귀납적 가정에 의해 적청색이 될 수 있습니다.b(c)=b(p)−1=12h(p)−1=12h(c)c
동일한 추론으로 , 다음 두N과의 하위N은유도 가정을 만족시킨다. 따라서n은 어떤 색이든 가질 수 있습니다.b(n)∈(12h(r),m(r))nnn