4.0 KiB
title | localeTitle |
---|---|
Trees | الأشجار |
الأشجار
يمكن تعريف بنية بيانات الأشجار بشكل متكرر (محلي) كمجموعة من العقد (تبدأ من عقدة جذر) ، حيث تكون كل عقدة عبارة عن بنية بيانات تتكون من قيمة ، مع قائمة مراجع للعقد ("الأطفال") ، مع القيود التي لا تتكرر أي إشارة ، ولا شيء يشير إلى الجذر. تسمى الشجرة بدون العقد بالشجرة الخالية أو الفارغة.
الشجرة الثنائية هي بنية بيانات غير خطية تتكون من العقد ، حيث تحتوي كل عقدة على المكونات الثلاثة التالية:
عنصر البيانات : يخزن أي نوع من البيانات في العقدة مؤشر يسار : يشير إلى الشجرة الفرعية على الجانب الأيسر من العقدة المؤشر الأيمن : يشير إلى الشجرة الفرعية على الجانب الأيمن من العقدة كما يوحي الاسم ، يخزن عنصر البيانات أي نوع من البيانات في العقدة. تشير مؤشرات اليسار واليمين إلى الأشجار الثنائية على الجانب الأيمن والأيسر من العقدة على التوالي.
إذا كانت الشجرة فارغة ، يتم تمثيلها بمؤشر فارغ.
المصطلحات المستخدمة في الأشجار:
الجذر : العقدة العليا في شجرة.
الطفل : عقدة متصلة مباشرة بعقدة أخرى عند الانتقال بعيدًا عن الجذر.
الوالد : الفكرة العكسية للطفل.
الأشقاء : مجموعة من العقد مع نفس الوالد.
السليل : يمكن الوصول إلى العقدة من خلال إجراء متكرر من الوالد إلى الطفل.
السلف : يمكن الوصول إلى العقدة من خلال إجراء متكرر من الطفل إلى الوالد.
الفرع (العقدة الداخلية): عقدة لشجرة لها عقد فرعية.
ورقة (أقل شيوعا تسمى العقدة الخارجية): عقدة بدون أطفال.
الدرجة العلمية : عدد الألواح الفرعية لعقدة.
الحافة : الاتصال بين عقدة واحدة وأخرى.
المسار : تسلسل من العقد والحواف التي تربط العقدة مع سليل.
المستوى : يتم تعريف مستوى العقدة بواسطة 1 + (عدد الاتصالات بين العقدة والجذر).
ارتفاع الشجرة : ارتفاع الشجرة هو ارتفاع العقدة الجذرية الخاصة بها.
العمق : عمق العقدة هو عدد الحواف من العقدة الجذرية للشجرة إلى العقدة.
غابة : الغابة هي مجموعة من الأشجار المنفصلة n ≥ 0.
بعض أنواع الأشجار الشائعة:
- شجرة ثنائية
- شجرة البحث الثنائية
- شجرة AVL
- أحمر أسود شجرة
- شجرة Splay
- شجرة هوفمان
الاستخدامات الشائعة
- تمثل البيانات الهرمية
- تخزين البيانات بطريقة تجعلها سهلة البحث
- تمثل قوائم مرتبة من البيانات
- خوارزميات التوجيه
رمز عقدة شجرة
`` `c_cpp العقدة الهيكلية { بيانات int؛ // عنصر البيانات العقدة الهيكلية * اليسار ؛ // المؤشر إلى العقدة اليسرى العقدة الهيكلية * // المؤشر إلى العقدة اليمنى }؛
`` `