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

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

متوسط

مقدمة

أنت تعمل على مشروع لتطوير نظام لجدولة القطارات في شبكة سكك حديدية مزدحمة.

طُلب منك تطوير نموذج أولي لمسارات القطارات في نظام الجدولة. يتكوّن كل مسار من تسلسل من محطات القطار التي يتوقف عندها قطار معيّن.

التعليمات

قرّر فريقك استخدام قائمة مترابطة مزدوجة لتمثيل كل مسار قطار في الجدول الزمني. كل محطة على طول مسار القطار ستُمثَّل بعقدة في القائمة المترابطة.

لا داعي للقلق بشأن أوقات الوصول والمغادرة في المحطات. كل محطة ستُمثَّل ببساطة بعدد.

يمكن تمديد المسارات بإضافة محطات إلى بداية المسار أو نهايته. ويمكن أيضًا تقصيرها بإزالة محطات من بداية المسار أو نهايته.

أحيانًا تُغلق إحدى المحطات، وفي هذه الحالة يجب إزالتها من المسار، حتى لو لم تكن في بداية المسار أو نهايته.

لا يُقاس حجم المسار بمدى سفر القطار، بل بعدد المحطات التي يتوقف عندها.

Note

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

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


المصدر

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

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

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