أنت تعمل في شركة لبث الموسيقى.
أوكلت إليك مهمة إنشاء ميزة قوائم التشغيل في تطبيق مشغل الموسيقى الخاص بك.
اكتب نموذجًا أوليًا لتطبيق مشغّل الموسيقى.
في هذا النموذج الأولي، تُمثَّل كل أغنية برقم ببساطة. بمعطى نطاق من الأرقام (معرّفات الأغاني)، أنشئ قائمة مرتبطة أحادية الاتجاه.
وبمعطى قائمة مرتبطة أحادية الاتجاه، ينبغي أن تكون قادرًا على عكس ترتيب القائمة لتشغيل الأغاني بالترتيب المعاكس.
القائمة المرتبطة بنية بيانات أساسية في علم الحاسوب، وكثيرًا ما تُستخدم في تنفيذ بنى بيانات أخرى.
أبسط أنواع القوائم المرتبطة هي القائمة المرتبطة أحادية الاتجاه. وهذا يعني أن كل عنصر (أو "عقدة") يحتوي على بيانات، إلى جانب شيء يشير إلى العقدة التالية في القائمة.
إذا أردت التعمق أكثر في القوائم المرتبطة، فاطّلع على هذا المقال الذي يشرحها برسومات جميلة.
عرّف صفًا باسم 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 عندما تكون القائمة فارغة.
سجّل في Exercism لتتعلّم وتتقن Factor عبر 47 مفهومًا163 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.