بناء الشجرة

بناء الشجرة

متوسط

التعليمات

أعِد هيكلة خوارزمية بناء الشجرة.

تعتمد بعض المنتديات الإلكترونية على تخطيط شجري، فتُعرض المنشورات على هيئة شجرة. غير أن المنشورات تُخزَّن عادةً في قاعدة بيانات كمجموعة غير مرتبة من السجلات. لذا لا بد من إعادة بناء البنية الشجرية عند عرض المنشورات على المستخدم.

مهمتك هي إعادة هيكلة قطعة كود تعمل فعلاً لكنها بطيئة وقبيحة، وتنفّذ منطق بناء الشجرة لسجلات مجرّدة إلى حد كبير. لا تحتوي السجلات إلا على رقم معرّف ورقم معرّف أب. يقع رقم المعرّف دائمًا بين 0 (شاملًا) وطول مصفوفة السجلات (غير شامل). ولكل سجل معرّف أب أصغر من معرّفه، باستثناء السجل الجذر، فمعرّف أبيه يساوي معرّفه.

مثال على شجرة:

root (ID: 0, parent ID: 0)
|-- child1 (ID: 1, parent ID: 0)
|    |-- grandchild1 (ID: 2, parent ID: 1)
|    +-- grandchild2 (ID: 4, parent ID: 1)
+-- child2 (ID: 3, parent ID: 0)
|    +-- grandchild3 (ID: 6, parent ID: 3)
+-- child3 (ID: 5, parent ID: 0)
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Visual Basic Exercism

مستعد لبدء بناء الشجرة؟

سجّل في Exercism لتتعلّم وتتقن Visual Basic عبر 113 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.