การสร้างบริการของต้นไม้แดงดำ ของ ต้นไม้แดงดำ

การเพิ่มสมาชิก

การเพิ่มสมาชิกของต้นไม้แดงดำจะเลียนแบบการทำงานของต้นไม้ได้ดุล 2-3-4 ซึ่งมีการเปลี่ยนสมาชิกของ Node ให้สูงขึ้นไป หรือการแตก Node เหล่านี้สามารถแทนด้วยต้นไม้แดงดำด้วยวิธีการจัดการตามสมบัติของต้นไม้แดงดำที่ว่าลูกของ Node ที่เป็นสีแดงต้องเป็นสีดำ และจัดการดังต่อไปนี้ได้

  1. เพิ่มสมาชิกโดยใช้วิธีการเดียวกับ binary search tree ทั่วไป เพียงแต่ Node ที่เพิ่มใหม่นี้ให้เป็น Node สีแดง
  2. สำรวจว่า Node พ่อของ Node ใหม่ที่เพิ่มขึ้นเป็นสีแดงหรือไม่ ถ้าใช่จะขัดกับสมบัติกล่าวมาข้างต้น ก็จะทำได้สองวิธีดังนี้
    1. การสลับสีสาม Node ในกรณีที่มีการต่อในลักษณะคล้ายกับต่อ Node แบบสี่ การสลับสีสาม Node จะเสมือนการแตก Node ในต้นไม้ได้ดุล2-3-4
    2. การหมุน 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 เพื่อขจัดข้อขัดแย้งไป

การค้นหาสมาชิก

การค้นหาสมาชิกนั้นสะดวกมากกว่าต้นไม้ได้ดุล2-3-4 เพราะใช้วิธีค้นหาแบบเดียวกับ Binary search tree ได้

ใกล้เคียง

ต้นไม้ตัดสินใจ ต้นไม้ของพ่อ ต้นไม้แบบที ต้นไม้แห่งการรู้ถึงความดีและความชั่ว ต้นไม้ (ทฤษฎีกราฟ) ต้นไม้เงินต้นไม้ทอง ต้นไม้ (โครงสร้างข้อมูล) ต้นไม้สเปลย์ ต้นไม้แดงดำ ต้นไม้ 2–3–4