ผลต่างระหว่างรุ่นของ "ต้นไม้แดงดำ"

== การสร้างบริการของต้นไม้แดงดำ ==
=== การเพิ่มสมาชิก ===
การเพิ่มสมาชิกของต้นไม้แดงดำจะเลียนแบบการทำงานของต้นไม้ได้ดุล 2-3-4 ซึ่งมีการเปลี่ยนสมาชิกของปม Node ให้สูงขึ้นไป หรือการแตกปม Node เหล่านี้สามารถแทนด้วยต้นไม้แดงดำด้วยวิธีการจัดการตามสมบัติของต้นไม้แดงดำที่ว่า
"ห้ามปมลูกของ Node ที่เป็นพ่อ-ลูกกันเป็นสีแดงเหมือนกัน"ต้องเป็นสีดำ และจัดการดังต่อไปนี้ได้
# เพิ่มสมาชิกโดยใช้วิธีการเดียวกับต้นไม้ค้นหาแบบทวิภาค binary search tree ทั่วไป เพียงแต่ปม Node ที่เพิ่มใหม่นี้ให้เป็นปม Node สีแดง
# สำรวจว่าปม Node พ่อของปม Node ใหม่ที่เพิ่มขึ้นเป็นสีแดงหรือไม่ ถ้าใช่ก็จะขัดกับสมบัติที่"ห้ามปมที่เป็นพ่อ-ลูกกันเป็นสีแดงเหมือนกัน"กล่าวมาข้างต้น ก็จะทำได้สองวิธีดังนี้
## การสลับสีสามปม Node ในกรณีที่มีการต่อในลักษณะคล้ายกับต่อปม Node แบบสี่ การสลับสีสามปม Node จะเสมือนการแตกปม Node ในต้นไม้ได้ดุล2-3-4
## การหมุนปม Node และสลับสีสามปม Node ในบางกรณีการสลับสีสามปม Node เฉย ๆ ไม่อาจช่วยให้ถูกต้องกับสมบัติที่ว่า"ห้ามปมที่เป็นพ่อ-ลูกกันเป็นสีแดงเหมือนกัน"กล่าวมาข้างต้นได้ ดังนั้นการหมุนปม Node เท่านั้นจึงช่วยให้สมบัติถูกต้องแบบนี้จะสอดคล้องกับการเพิ่มข้อมูลในปม Node ในต้นไม้ได้ดุล2-3-4
 
=== การลบสมาชิก ===
สำหรับการ delete ก็จะเป็นลักษณะเดียวกับการทำ insert คือ operation ของการทำ delete ทั่วๆไปจะมีลักษณะเหมือนกับ delete ของ Binary Search Tree เริ่มจากพิจารณาว่า Node ที่จะทำการ delete นั้นไม่มีลูกเป็น Node ภายใน , มีลูก 1 Node เป็น Node ภายใน, ลูกทั้ง 2 Node เป็น Node ภายใน โดยถ้าเป็นกรณีที่ Node ที่จะทำการ delete ไม่มีลูกเป็น Node ภายในก็จะลบ Node นั้นทิ้งแล้วแทนด้วย sentinelเลย แต่ถ้ามี 1 Node ภายใน ก็จะแทน Node ที่ต้องการลบด้วยลูกของ Node นั้นเลย และในกรณีสุดท้ายจะหา successor (ตัวที่มีค่าน้อยที่สุดที่มีค่ามากกว่า Node นั้น) มาแล้วทำการลบ successor แทน แล้วย้ายค่าของ successor มาไว้ใน Node นั้น จากนั้นก็ต้องพิจารณาว่าการลบนั้นทำให้เกิดข้อขัดแย้งในคุณสมบัติ 5 ข้อหรือไม่ โดยจะเกิดข้อขัดแย้งขึ้นเมื่อ Node ที่เราทำการลบไป เป็นสีดำก็จะต้องทำการ fixup เพื่อขจัดข้อขัดแย้งไป
ผู้ใช้นิรนาม