
تُكمل هذه الدورة من «هياكل البيانات والخوارزميات» جزء هياكل البيانات ضمن سلسلة الدورات، من خلال التعمّق في الأشجار ذاتية الموازنة: أشجار AVL وأشجار (2-4). كما تمثّل بداية جزء الخوارزميات في السلسلة، مع ربط مستمر لمفاهيم تعقيد الزمن عبر جميع هياكل البيانات والخوارزميات التي ستدرسها. تتضمن الدورة مراجعة قصيرة للغة Java تركز على الموضوعات المرتبطة بهياكل البيانات الجديدة التي يغطيها المحتوى. وتشترط الدورة معرفة مسبقة بلغة Java، والبرمجة كائنية التوجه، وهياكل البيانات الخطية وغير الخطية. ستقوم بالتحقيق والاستكشاف لهياكل بيانات أكثر تعقيدًا: أشجار AVL وأشجار (2-4). يركّز كلا النوعين على تقنيات الموازنة الذاتية التي تضمن أن تكون العمليات الأساسية—مثل البحث والإدراج والحذف—بزمن O(log n). تُعد أشجار AVL فئة فرعية من أشجار البحث الثنائية (BST)، ولذلك ترث خصائصها الأساسية، مع إضافة آليات دقيقة لاستعادة الاتزان عبر الدورانات المفردة والمزدوجة. وفي جانب أشجار (2-4)، ستتعامل مع حالات فيض (overflow) ونقص (underflow) قد تظهر أثناء التحديثات، وتتعلم كيفية معالجة ذلك باستخدام أساليب مثل الترقية (promotion) والنقل (transfer) والدمج (fusion) للحفاظ على بنية متوازنة. كما تستكشف خوارزميات الفرز بدءًا من خوارزميات تكرارية بسيطة مثل الفقاعي والإدراج والاختيار، ثم تنتقل إلى خوارزميات «فرق تسد»، مع الاستفادة من تصوّرات الدورة لفهم السلوك والأداء.
Mary Hudachek-Buswell
Associate Chair, School of Computing Instruction