Binary-Tree
خوارزميات | Algorithms برمجة | Programming
مهني|Professional
- 2025-05-27
ال Binary Tree
هي أحدى أنواع ال Data Structure و التي تهتم بهيكلة البيانات و تنضيمها , مما يسهّل عملية استرجلع البيانات.
فهي تعتمد بشكل أساسي على بناء شجرة تبدأ بعقدة تدعى ال Root ثم يتم بإضافة العقد اليها حتى تنتهي بالأوراق و التي هي عبارة عن عقد ليس لها أبناء.
نستفيد من هذا النوع من تنظيم لبيانات بعمليات البحث بشكل رئيسي حيث أنه يتم اختصار الوقت للوصول إلى المعلومة المراد البحث عنها.
فمثلا لو كان لدينا الأرقام التالية ضمن Array
25,26,27,28,29
فإذا أردت البجث عن الرقم 29 بشكل خطي فأنني مضطر للمروربجميع العناصر التي تسبق الرقم 29 للوصول إلى ال 29.
أي أنني أريد الإنتقال 5 خطوات للوصول للمعلومة.
أما باستخدام الشجرة الثنائية فأنه في كل عملية تحقق أقوم بالتخلص من عدد كبير من الاحتمالات و لم يعد من الضروري فحصها.
فمثلا للبحث عن الرقم 29 بالشجرة الثنائية , سوف نبدأ من العقدة التي تحمل الرقم 27 و نسأل هل ال 29 أكير أو أصغر من 26
بما أن ال 29 أكبر من ال 27 فجميع العقد الموجودة في الشجرة اليمينية للعقدة 27 أصبحت خارج مجال البحث لأننا نعلم أن جميع القيم التي تقع على يمين العقدة 27 هي أصغر من ال 27 و بما أن ال 27 أصغر من ال 29 بالتالي جميع العقد في الشجرة اليمينية من غير الممكن أن تكون 29 و بهذه الحالة تم إلغاء الحالات الموجودة في الشجرة اليمينية و التي هي 25 و 26 و لم نعد بحاجة لفحصها. و بالتالي قمنا بتوفير عمليتا فحص أثناء البحث و بالطبع كلما كانت عدد العقد في الشجرة أكبر كلّما تبين فائدة البحث الثنائي بشكل أكبر, حيث أن كل عملية تحقق تمكننا من استبعاد عدد كبير من حالات الفحص.
هل كان الشرح مفيد؟
شروحات مشابهة
- خوارزميات | Algorithms
- برمجة | Programming
- برمجة | Programming
- برمجة سي شارب | c# programming
- برمجة جافا | Java programming
- برمجة بي اتش بي | Php programming
- برمجة html | Html programming
- برمجة سي اس اس | Css programming
- برمجة روبي | Ruby programming