الدرس 5 من 8
التسطيح والتعشيش
- 13 دقيقة
- 6 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
شجرة تصير قائمة
01
الشرح
القوائم المتداخلة تأتيك من كل مكان: تعليقات لها ردود، وأقسام لها أقسام فرعية. وأكثر ما تحتاجه عليها مرور واحد مسطّح.
arr.flat(Infinity) يكفي للمصفوفات المتداخلة. لكن الشجرة الحقيقية كائنات لها children، وهذه تحتاج استدعاءً ذاتيًّا: الدالة تنادي نفسها على كل فرع.
والاستدعاء الذاتي يحتاج دائمًا شرط توقّف — هنا: فرع بلا أبناء.
02
المطلوب
اكتب flattenTree(nodes) تُرجع قائمة مسطّحة، وكل عنصر فيها يحمل depth.
معايير التصحيح
6 معايير- العدد الكلّي ستّ عقد
- الترتيب يتبع الشجرة عمقًا أولًا
- العمق محسوب صحيحًا
- القائمة الفارغة تُرجع فارغة
- العقدة بلا أبناء لا تكسرها
- القائمة مرسومة بستّة أسطر