العودة إلى الدورة

الدرس الرابع والثلاثون: الأكوام (Heaps): هيكل Max Heap و Min Heap

الخوارزميات: من الصفر إلى الاحتراف (دليل المبتدئين)

34. الأكوام (Heaps): هيكل Max Heap و Min Heap

الكومة (Heap) هي هيكل بيانات متخصص قائم على الشجرة يحقق خاصية الكومة (Heap Property).

والأهم من ذلك، يتم عادةً تطبيق الكومة بكفاءة باستخدام مصفوفة.

خصائص الكومة

  1. الاكتمال (Completeness): يجب أن تكون شجرة ثنائية كاملة (جميع المستويات ممتلئة بالكامل، باستثناء المستوى الأخير ربما، والذي يتم ملؤه من اليسار إلى اليمين).
  2. ترتيب الكومة (Heap Order):
    • Max Heap: لكل عُقدة، يجب أن تكون القيمة أكبر من أو تساوي قيم أبنائها (الجذر يحمل العنصر الأقصى).
    • Min Heap: لكل عُقدة، يجب أن تكون القيمة أقل من أو تساوي قيم أبنائها (الجذر يحمل العنصر الأدنى).

لماذا الأكوام مفيدة؟

الأكوام ضرورية لتطبيق قوائم الانتظار ذات الأولوية (priority queues) ولتشغيل خوارزميات مثل Heap Sort وخوارزمية Dijkstra's لأقصر مسار بكفاءة.

تستغرق عمليات مثل إدراج وحذف عنصر الجذر (الأقصى/الأدنى) وقتاً قدره O(log N).