โดยสัญชาตญาณ "ต้นไม้ที่สมดุล" ควรเป็นต้นไม้ที่ต้นไม้ย่อยด้านซ้ายและขวาในแต่ละโหนดจะต้องมีจำนวนโหนดโดยประมาณเท่ากัน
แน่นอนเมื่อเราพูดถึงต้นไม้สีแดงดำ * (ดูคำจำกัดความที่ท้าย) การมีความสมดุลจริง ๆ แล้วเราหมายถึงว่าพวกเขามีความสูงที่สมดุลและในแง่นั้นพวกเขามีความสมดุล
สมมติว่าเราพยายามทำสัญชาตญาณข้างต้นเป็นระเบียบดังนี้:
คำนิยาม:ต้นไม้ไบนารีเรียกว่า -balance, โดยมี , สำหรับทุกโหนด , ความไม่เท่าเทียมกัน
เก็บและสำหรับทุก ๆมีบางโหนดที่คำสั่งข้างต้นล้มเหลว คือจำนวนโหนดในทรีย่อยด้านซ้ายของและคือจำนวนโหนดใต้ต้นไม้ที่มีเป็นรูท (รวมถึงรูท)
ฉันเชื่อว่าสิ่งเหล่านี้เรียกว่าต้นไม้ที่มีน้ำหนักสมดุลในวรรณกรรมบางเล่มในหัวข้อนี้
ใคร ๆ ก็สามารถแสดงให้เห็นว่าถ้าต้นไม้ไบนารีกับ nodes คือ -balanced (สำหรับค่าคงที่ ) ดังนั้นความสูงของต้นไม้คือดังนั้นจึงคงการค้นหาที่ดี คุณสมบัติ.
ดังนั้นคำถามคือ:
มีบ้างไหมที่ต้นไม้สีแดงดำใหญ่พอที่จะ mu- สมดุล
ความหมายของต้นไม้สีแดงดำที่เราใช้ (จากบทนำสู่อัลกอริทึมโดย Cormen et al):
แผนผังการค้นหาแบบไบนารีที่แต่ละโหนดมีสีเป็นสีแดงหรือสีดำและ
- รากมีสีดำ
- โหนด NULL ทั้งหมดเป็นสีดำ
- หากโหนดเป็นสีแดงแสดงว่าโหนดลูกทั้งสองเป็นสีดำ
- สำหรับแต่ละโหนดเส้นทางทั้งหมดจากโหนดนั้นไปยังโหนด NULL ที่สืบทอดมามีโหนดสีดำจำนวนเดียวกัน
หมายเหตุ: เราจะไม่นับโหนด NULL ในคำจำกัดความของ -balance ด้านบน (แม้ว่าฉันเชื่อว่ามันไม่สำคัญว่าเราจะทำ)