ตัวอย่างของบทความนี้อธิบายวิธีการใช้ Java เพื่อใช้การควบรวมและลบเพื่อลบโหนดในทรีไบนารี แบ่งปันสำหรับทุกคนสำหรับการอ้างอิงของคุณ การวิเคราะห์เฉพาะมีดังนี้:
แนวคิดของการใช้งานนั้นง่ายมาก:
ครั้งแรก: ค้นหาโหนดที่จะลบ
ประการที่สอง: หากโหนดที่ถูกลบไม่ได้ไม่มีทรีย่อยที่ถูกต้องแล้วโซ่ย่อยย่อยด้านซ้ายไปยังโหนดพาเรนต์
ประการที่สาม: หากโหนดที่ถูกลบไม่เหลืออยู่โซ่ย่อยย่อยด้านซ้ายไปยังโหนดพาเรนต์
Forth: หากโหนดที่ถูกลบออกไปและขวาคุณสามารถรวมทรีย่อยหลังจากโหนดลบ: มีสองวิธีในการใช้โหนดขวาของทรีย่อยด้านซ้ายที่ลบโหนดชี้ไปที่ทรีย่อยด้านขวา ของโหนดลบและอื่น ๆ มันคือการชี้ทรีย่อยด้านซ้ายของโหนดที่ถูกลบด้วยโหนดซ้ายสุดของจำนวนคำของโหนดที่ถูกลบ
การใช้งาน Java มีดังนี้:
โมฆะสาธารณะ deleteByerring (int el) {intbstnode tmp, โหนด, p = root, prev = null;/*ค้นหาโหนดที่จะลบ*/ในขณะที่ (p! = null && key! = el) rev = p; .key <el) p = p.right; ) // Node ไม่มีลูกที่ถูกต้อง (ถ้ามี) ติดอยู่กับ Node.left; ติดกับ node = node.richt // paintelse {tmp = node.left; ; .left = node;} else prev.richt = node} อื่นถ้า (root! = null) {system.out.println ("โหนดไม่ได้อยู่ในต้นไม้");หวังว่าบทความนี้จะเป็นประโยชน์กับการออกแบบโปรแกรม Java ของทุกคน