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

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

متوسط

مقدمة

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

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

التعليمات

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

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

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

Note

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

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

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

تلميحات التنفيذ

لقد وفّرنا لك البنية العامة لصنف List. يحتوي على المتغيرين الخاصين head من النوع Element* وcurrent_size من النوع size_t ويمكنك استخدامهما.

وقد وُفّرت بنية Element أيضًا، ولها متغيران: data من النوع int وnext من النوع Element*.

يمكنك رؤية التفاصيل في simple_linked_list.h. لا يلزمك تغيير ذلك الملف، لكن يمكنك ذلك إن كان يناسب احتياجاتك.

تستخدم الاختبارات الدوال كما هي مقدَّمة في simple_linked_list.cpp، فلا تغيّر توقيعها. ويمكنك إضافة المزيد من الدوال والأعضاء إن أردت ذلك.

هل يمكنني استخدام المؤشرات الذكية؟

رغم أن ملف الترويسة يتضمن مؤشرات خامًا، فلك الحرية في اختيار تنفيذ مختلف.

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

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

سجّل في Exercism لتتعلّم وتتقن C++ عبر 19 مفهومًا100 تمرين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.