نفّذ قائمة مترابطة مزدوجة.
مثل المصفوفة، القائمة المترابطة بنية بيانات خطية بسيطة. يمكن تنفيذ العديد من أنواع البيانات الشائعة باستخدام القوائم المترابطة، مثل الطوابير والمكدسات والمصفوفات الترابطية.
القائمة المترابطة مجموعة من عناصر البيانات تُسمى العُقد. في القائمة المترابطة المفردة تحمل كل عقدة قيمة ورابطًا إلى العقدة التالية. وفي القائمة المترابطة المزدوجة تحمل كل عقدة أيضًا رابطًا إلى العقدة السابقة.
ستكتب تنفيذًا لقائمة مترابطة مزدوجة.
نفّذ Node لتحمل قيمة ومؤشرات إلى العقدتين التالية والسابقة.
ثم نفّذ List تحتفظ بمراجع إلى العقدة الأولى والأخيرة، وتقدّم واجهة شبيهة بالمصفوفة لإضافة العناصر وإزالتها:
push (إدراج قيمة في النهاية)؛pop (إزالة قيمة من النهاية)؛shift (إزالة قيمة من البداية).unshift (إدراج قيمة في البداية)؛حرصًا على أن يبقى تنفيذك بسيطًا، لن تغطي الاختبارات حالات الخطأ.
وتحديدًا: لن تُستدعى pop أو shift أبدًا على قائمة فارغة.
اقرأ المزيد عن القوائم المترابطة على ويكيبيديا.
سجّل في Exercism لتتعلّم وتتقن Nim عبر 70 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.