38. البحث بعمق أولاً (Depth First Search - DFS)
DFS هي خوارزمية اجتياز للرسوم البيانية تستكشف أبعد ما يمكن على طول كل فرع قبل التراجع (backtracking).
المفهوم: التغلغل بعمق
تخيل التنقل في متاهة. DFS يشبه النزول في مسار واحد حتى تصل إلى طريق مسدود، ثم العودة (التراجع) وتجربة المسار التالي المتاح.
يستخدم DFS عادةً مكدس (Stack) (أو العودية، التي تستخدم مكدس الاستدعاءات) لتذكر العُقد التي يجب زيارتها بعد ذلك.
خطوات الخوارزمية (العودية)
- البدء من عُقدة مصدر S.
- وضع علامة على S كمُزارة.
- لكل جار
Vلـ S:- إذا لم يتم زيارة
V، فاستدعِ DFS بشكل عودي علىV.
- إذا لم يتم زيارة
حالات الاستخدام
- إيجاد المكونات المتصلة.
- اكتشاف الدورات في رسم بياني.
- الفرز الطوبولوجي.