📝 أسئلة اختبارية
عدد الأسئلة: 8
سؤال 1: حدد الجملة الصحيحة والجملة الخاطئة فيما يلي:
الإجابة الصحيحة: انظر الأسئلة الفرعية
الشرح: هذا سؤال رئيسي يحتوي على أسئلة فرعية
تلميح: راجع الأسئلة الفرعية أدناه
سؤال 2: اشرح كيف تعمل خوارزمية البحث بأولوية الاتساع (BFS) وخوارزمية البحث بأولوية العمق (DFS).
- أ) BFS تستخدم قائمة انتظار وتبدأ من الجذر، بينما DFS تستخدم مكدساً وتبدأ من الجذر
- ب) BFS تستخدم مكدساً وتبدأ من الجذر، بينما DFS تستخدم قائمة انتظار وتبدأ من الجذر
- ج) كلاهما يستخدمان قائمة انتظار ويبدآن من العقدة الأخيرة
- د) كلاهما يستخدمان مكدساً ويبدآن من العقدة الأخيرة
الإجابة الصحيحة: خوارزمية البحث بأولوية الاتساع (BFS) تعمل باجتياز المستويات بشكل أفقي، حيث تبدأ من العقدة الجذر وتزور جميع العقد المجاورة أولاً قبل الانتقال إلى المستوى التالي، باستخدام قائمة انتظار (Queue). خوارزمية البحث بأولوية العمق (DFS) تعمل باجتياز المسارات بشكل عمودي، حيث تبدأ من العقدة الجذر وتستكشف أقصى عمق ممكن في كل فرع قبل العودة، باستخدام مكدس (Stack) أو الاستدعاء الذاتي.
الشرح: BFS تستخدم استراتيجية الاتساع أولاً لضمان زيارة جميع العقد على نفس المستوى قبل الانتقال، مما يجعلها مناسبة لإيجاد أقصر مسار. DFS تستخدم استراتيجية العمق أولاً لاستكشاف المسارات بعمق، مما يجعلها مناسبة لحل المتاهات واكتشاف الدورات.
تلميح: ركز على الفرق في استراتيجية الاجتياز وهياكل البيانات المستخدمة
سؤال 3: قارن بين خوارزمية البحث بأولوية الاتساع (BFS) وخوارزمية البحث بأولوية العمق (DFS).
- أ) BFS تستخدم مكدساً وتبحث عميقاً، بينما DFS تستخدم قائمة انتظار وتبحش أفقيًا
- ب) BFS تستخدم قائمة انتظار وتبحث أفقيًا، بينما DFS تستخدم مكدساً وتبحث عميقاً
- ج) كلاهما يستخدمان قائمة انتظار ويبحثان أفقيًا
- د) كلاهما يستخدمان مكدساً ويبحثان عميقاً
الإجابة الصحيحة: BFS تجتاز المستويات أفقيًا باستخدام قائمة انتظار، وتضمن إيجاد أقصر مسار، لكنها تتطلب ذاكرة أكبر. DFS تجتاز المسارات عموديًا باستخدام مكدس، وتتطلب ذاكرة أقل، لكنها قد لا تجد أقصر مسار. BFS مناسبة للبحث الشبكي، بينما DFS مناسبة لحل المتاهات واكتشاف الدورات.
الشرح: المقارنة تشمل استراتيجية الاجتياز (أفقي مقابل عمودي)، هيكل البيانات (قائمة انتظار مقابل مكدس)، التعقيد الزمني (O(V+E) لكليهما)، التعقيد المكاني (O(V) لـ BFS مقابل O(log V) لـ DFS في المتوسط)، والتطبيقات العملية.
تلميح: قارن من حيث الاستراتيجية، هياكل البيانات، التعقيد، والتطبيقات
سؤال 1: تُنفّذ خوارزمية البحث بأولوية الاتساع (BFS) وخوارزمية البحث بأولوية العمق (DFS) باستخدام الاستدعاء الذاتي.
الإجابة الصحيحة: خطأ
الشرح: خوارزمية البحث بأولوية العمق (DFS) يمكن تنفيذها باستخدام الاستدعاء الذاتي، لكن خوارزمية البحث بأولوية الاتساع (BFS) لا تُنفّذ عادةً باستخدام الاستدعاء الذاتي بل باستخدام قائمة الانتظار (Queue).
تلميح: تذكر هياكل البيانات المستخدمة في تنفيذ كل خوارزمية
سؤال 1: لا يمكن استخدام خوارزمية البحث بأولوية الاتساع (BFS) وخوارزمية البحث بأولوية العمق (DFS) في هيكل بيانات الشجرة.
الإجابة الصحيحة: خطأ
الشرح: يمكن استخدام كل من خوارزمية البحث بأولوية الاتساع (BFS) وخوارزمية البحث بأولوية العمق (DFS) في هيكل بيانات الشجرة، حيث تُستخدم لاجتياز العقد في الشجرة بطرق مختلفة.
تلميح: فكر في كيفية اجتياز الأشجار باستخدام BFS وDFS
سؤال 1: تُنفّذ خوارزمية البحث بأولوية الاتساع (BFS) بمساعدة هيكل بيانات القائمة المترابطة.
الإجابة الصحيحة: خطأ
الشرح: تُنفّذ خوارزمية البحث بأولوية الاتساع (BFS) عادةً باستخدام هيكل بيانات قائمة الانتظار (Queue) وليس القائمة المترابطة (Linked List) بشكل مباشر، رغم أن قائمة الانتظار يمكن تنفيذها باستخدام قائمة مترابطة.
تلميح: ما هو الهيكل الرئيسي المستخدم في تنفيذ BFS؟
سؤال 1: يمكن تنفيذ خوارزمية البحث بأولوية العمق (DFS) بمساعدة هيكل بيانات المكدس.
الإجابة الصحيحة: صحيح
الشرح: نعم، يمكن تنفيذ خوارزمية البحث بأولوية العمق (DFS) باستخدام هيكل بيانات المكدس (Stack)، سواء بشكل صريح أو ضمنيًا عبر الاستدعاء الذاتي.
تلميح: كيف يتم تخزين العقد في DFS؟
سؤال 1: لا يمكن استخدام خوارزمية البحث بأولوية الاتساع (BFS) في البحث الشبكي.
الإجابة الصحيحة: خطأ
الشرح: يمكن استخدام خوارزمية البحث بأولوية الاتساع (BFS) في البحث الشبكي، حيث تُستخدم للعثور على أقصر مسار في الشبكات أو الرسوم البيانية غير الموزونة.
تلميح: ما هي تطبيقات BFS في الشبكات؟
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 4 بطاقة لهذه الصفحة
ما هي هياكل البيانات المستخدمة لتنفيذ خوارزمية البحث بأولوية الاتساع (BFS) وخوارزمية البحث بأولوية العمق (DFS)؟
الإجابة: تُنفّذ خوارزمية البحث بأولوية الاتساع (BFS) بمساعدة هيكل بيانات القائمة (Queue)، بينما تُنفّذ خوارزمية البحث بأولوية العمق (DFS) بمساعدة هيكل بيانات المكدس (Stack).
الشرح: خوارزمية BFS تعمل بمبدأ 'من يدخل أولاً يخرج أولاً' (FIFO) وهو ما توفره القائمة. أما DFS فتعمل بمبدأ 'من يدخل أخيراً يخرج أولاً' (LIFO) وهو ما يوفره المكدس.
تلميح: فكر في كيفية استكشاف كل خوارزمية للعقد. هل تستكشف أقدم العقد أولاً أم أحدثها؟
ما هو التنفيذ الشائع لخوارزمية البحث بأولوية العمق (DFS)؟
الإجابة: تُنفّذ خوارزمية البحث بأولوية العمق (DFS) بمساعدة هيكل بيانات المكدس (Stack)، وغالباً ما يتم ذلك باستخدام الاستدعاء الذاتي (Recursion).
الشرح: الاستدعاء الذاتي هو شكل من أشكال استخدام المكدس بشكل ضمني. كل استدعاء للدالة يضع إطارًا على المكدس، وعندما تعود الدالة، يتم سحب الإطار من المكدس.
تلميح: ما هي التقنية التي تسمح للدالة باستدعاء نفسها، وكيف ترتبط هذه التقنية بطريقة عمل DFS؟
هل يمكن استخدام خوارزميات البحث بأولوية الاتساع (BFS) وأولوية العمق (DFS) في هيكل بيانات الشجرة؟
الإجابة: نعم، يمكن استخدام كل من خوارزمية البحث بأولوية الاتساع (BFS) وخوارزمية البحث بأولوية العمق (DFS) في هيكل بيانات الشجرة. غالباً ما تُستخدم BFS للتنقل بين المستويات، بينما تُستخدم DFS للتنقل في مسار محدد.
الشرح: الشجرة هي حالة خاصة من الرسم البياني. تسمح BFS بزيارة جميع العقد على مستوى معين قبل الانتقال للمستوى التالي، بينما تسمح DFS باستكشاف فرع كامل قبل العودة.
تلميح: فكر في كيفية تمثيل الشجرة. هل يمكن تطبيق مبادئ الاستكشاف المتسلسل (BFS) والتعمق (DFS) عليها؟
لماذا لا يمكن في بعض السياقات استخدام خوارزمية البحث بأولوية الاتساع (BFS) في البحث الشبكي؟
الإجابة: لا يمكن استخدام خوارزمية البحث بأولوية الاتساع (BFS) في البحث الشبكي في بعض السياقات لأن الشبكات قد تحتوي على دورات (Cycles) وحلقات، مما قد يؤدي إلى استكشاف غير محدود أو غير فعال إذا لم يتم التعامل مع العقد التي تمت زيارتها بشكل صحيح. ومع ذلك، يمكن تكييف BFS للتعامل مع الشبكات عن طريق تتبع العقد التي تمت زيارتها.
الشرح: إذا لم يتم تتبع العقد التي تمت زيارتها، فإن BFS قد تعود إلى نفس العقد مرارًا وتكرارًا في وجود دورات، مما يؤدي إلى حلقة لا نهائية أو استكشاف مفرط.
تلميح: ما هو التحدي الذي قد تواجهه الخوارزميات التي تستكشف مسارات مختلفة في هياكل بيانات قد تحتوي على حلقات؟