หากสำหรับแต่ละโหนดของต้นไม้เส้นทางที่ยาวที่สุดจากโหนดนั้นไปยังโหนดใบจะไม่ยาวกว่าโหนดที่สั้นที่สุดสองเท่ากว่าต้นไม้ที่มีสีแดงดำ
นี่คืออัลกอริทึมที่ใช้หาสีของโหนดใด ๆ 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
เป็นระยะทางถึงใบที่ใกล้ที่สุด
เพื่อความกระชับของโน้ตให้ , เอช( n ) =และม. ( n ) =b(n)= n.black-quota
h(n)= n.height
m(n)= n.min-height
ทฤษฎีบท: Fix ต้นไม้ไบนารีTถ้าสำหรับทุกโหนดn ∈ T , h ( n ) ≤ 2 m ( n )และสำหรับโหนดr = root ( T ) , b ( r ) ∈ [ 1Tn∈Th(n)≤2m(n)r=root(T)จากนั้นTมีสีแดง - ดำที่มีจุดสีดำb(r)ทุกจุดตั้งแต่รูทถึงลีฟb(r)∈[12h(r),m(r)]Tb(r)
พิสูจน์:การเหนี่ยวนำกว่า )b(n)
ตรวจสอบว่าทั้งสี่ต้นของความสูงหนึ่งหรือสองตอบสนองความทฤษฎีบทที่มี 1b(n)=1
ตามคำจำกัดความของต้นไม้สีแดงดำรากเป็นสีดำ ให้เป็นโหนดกับบิดามารดาสีดำพีดังกล่าวว่าข( P ) ∈ [ 1np] จากนั้นข(n)=B(P)-1,เอช(n)=H(P)-1และเอช(n)≥เมตร(n)≥เมตร(P)-1b(p)∈[12h(p),m(p)]b(n)=b(p)−1h(n)=h(p)−1h(n)≥m(n)≥m(p)−1
Assume the theorem holds for all trees with root r, b(r)<b(q).
If b(n)=m(n), then n can be red-black colored by the inductive assumption.
If b(p)=12h(p) then b(n)=⌈12h(n)⌉−1ncnh(c)=h(p)−2 and b(c)=b(p)−1=12h(p)−1=12h(c)c
b(n)∈(12h(r),m(r)), then both n and a child of n satisfy the inductive assumption. Therefore n could have any color.