يصف مثال هذه المقالة طريقة استخدام Java لاستخدام عمليات الدمج والحذف لحذف العقدة في الشجرة الثنائية. شاركه للجميع للرجوع إليه. التحليل المحدد هو كما يلي:
فكرة التنفيذ بسيطة للغاية:
أولاً: العثور على العقد المراد حذفها
ثانياً: إذا لم تكن العقدة المحذوفة لا توجد شجرة فرعية يمين ، فإن سلسلة الشجرة الفرعية اليسرى إلى العقدة الأصل
ثالثًا: إذا لم يتم ترك العقد المحذوفة ، فإن سلسلة الشجرة الفرعية اليسرى إلى العقدة الأصل
فائقة: إذا كانت العقد المحذوفة على اليسار واليمين ، فيمكنك دمج الشجرة الفرعية بعد عقدة الحذف: هناك طريقتان لاستخدام العقدة اليمنى من الشجرة الفرعية اليسرى التي تحذف العقد ، تشير إلى الشجرة الفرعية اليمنى من العقدة الحذف ، والآخر هو توجيه الشجرة الفرعية اليسرى للعقدة المحذوفة مع العقدة في أقصى اليسار لعدد كلمات العقدة المحذوفة.
تطبيق Java كما يلي:
public void deletebyerring (int el) {intbstnode tmp ، node ، p = root ، prev = null ؛/*ابحث عن العقدة المراد حذفها*/بينما (p! = null && مفتاح! = el) rev = p ؛ .key <el) p = p.right ؛ // العقدة لا تحتوي على أطفال (إن وجد) على Node.Left ؛ تعلق على Node.richt // paintelse {tmp = node.left ؛ ؛ .LEFT = NODE ؛} prev.richt = node} آخر إذا (root! = null) {system.out.println ("العقدة ليست في الشجرة") ؛من المأمول أن يكون هذا المقال مفيدًا لتصميم برنامج Java للجميع.