المسارات
/
Factor
Factor
/
التمارين
/
القائمة المترابطة البسيطة
القائمة المترابطة البسيطة

القائمة المترابطة البسيطة

متوسط

مقدمة

أنت تعمل في شركة لبث الموسيقى.

أوكلت إليك مهمة إنشاء ميزة قوائم التشغيل في تطبيق مشغل الموسيقى الخاص بك.

التعليمات

اكتب نموذجًا أوليًا لتطبيق مشغّل الموسيقى.

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

وبمعطى قائمة مرتبطة أحادية الاتجاه، ينبغي أن تكون قادرًا على عكس ترتيب القائمة لتشغيل الأغاني بالترتيب المعاكس.

Note

القائمة المرتبطة بنية بيانات أساسية في علم الحاسوب، وكثيرًا ما تُستخدم في تنفيذ بنى بيانات أخرى.

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

إذا أردت التعمق أكثر في القوائم المرتبطة، فاطّلع على هذا المقال الذي يشرحها برسومات جميلة.

الكلمات

عرّف صفًا باسم linked-list-node.

عرّف صفًا باسم linked-list ووفّر طريقة M: linked-list length (من sequences) حتى تستطيع الاختبارات استدعاء length مباشرةً على قائمتك.

  • <linked-list> ( -- linked-list ): لإنشاء قائمة فارغة.
  • >linked-list ( seq -- linked-list ): لدفع كل عنصر من seq إلى قائمة جديدة، بالترتيب.
  • linked-list>array ( linked-list -- array ): لإرجاع القيم، بدءًا من قمة القائمة.
  • list-push ( linked-list value -- linked-list ): لدفع قيمة إلى القمة.
  • list-pop ( linked-list -- linked-list value ): لحذف قيمة القمة وإرجاعها.
  • list-peek ( linked-list -- value ): لإرجاع قيمة القمة دون حذفها.
  • list-reverse ( linked-list -- linked-list ): لإرجاع قائمة بعناصرها بترتيب معكوس.

اطرح صنف خطأ list-empty من list-pop وlist-peek عندما تكون القائمة فارغة.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Factor Exercism

مستعد لبدء القائمة المترابطة البسيطة؟

سجّل في Exercism لتتعلّم وتتقن Factor عبر 47 مفهومًا163 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.