Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Implementation (Part 1)

الدرس 5 من 9 في دورة خوارزمية Bellman-Ford - خوارزميات المخططات على Coddy.

أولاً، تمريرة استرخاء واحدة على جميع الحواف.

challenge icon

التحدي

متوسط

خوارزمية Bellman-Ford هي مجرد عملية واحدة متكررة: تمريرة استرخاء (relaxation pass) على جميع الحواف. لنقم ببناء تمريرة واحدة.

اكتب دالة باسم relaxAll تأخذ n، ومصفوفة edges مسطحة (ثلاثيات، موجهة، وربما سالبة)، و source. ابدأ بـ dist[source] = 0 وجميع المسافات الأخرى عند اللانهاية، ثم قم بعمل استرخاء لكل حافة مرة واحدة (بالترتيب المعطى) وأرجع المسافات الناتجة، مع استخدام -1 للرؤوس التي لا تزال غير قابلة للوصول.

بما أنها تمريرة واحدة فقط، فإن الرؤوس التي يمكن الوصول إليها فقط من خلال عدة حواف قد تظل -1. هذا أمر متوقع.

جرّب بنفسك

#include <stdlib.h>

int* relaxAll(int n, int* edges, int edges_size, int source, int* returnSize) {
    // اكتب الكود هنا
    *returnSize = 0;
    return edges;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس خوارزمية Bellman-Ford - خوارزميات المخططات