freeCodeCamp/guide/arabic/computer-science/data-structures/trees/index.md

4.0 KiB

title localeTitle
Trees الأشجار

الأشجار

يمكن تعريف بنية بيانات الأشجار بشكل متكرر (محلي) كمجموعة من العقد (تبدأ من عقدة جذر) ، حيث تكون كل عقدة عبارة عن بنية بيانات تتكون من قيمة ، مع قائمة مراجع للعقد ("الأطفال") ، مع القيود التي لا تتكرر أي إشارة ، ولا شيء يشير إلى الجذر. تسمى الشجرة بدون العقد بالشجرة الخالية أو الفارغة.

الشجرة الثنائية هي بنية بيانات غير خطية تتكون من العقد ، حيث تحتوي كل عقدة على المكونات الثلاثة التالية:

عنصر البيانات : يخزن أي نوع من البيانات في العقدة مؤشر يسار : يشير إلى الشجرة الفرعية على الجانب الأيسر من العقدة المؤشر الأيمن : يشير إلى الشجرة الفرعية على الجانب الأيمن من العقدة كما يوحي الاسم ، يخزن عنصر البيانات أي نوع من البيانات في العقدة. تشير مؤشرات اليسار واليمين إلى الأشجار الثنائية على الجانب الأيمن والأيسر من العقدة على التوالي.

إذا كانت الشجرة فارغة ، يتم تمثيلها بمؤشر فارغ.

المصطلحات المستخدمة في الأشجار:

الجذر : العقدة العليا في شجرة.

الطفل : عقدة متصلة مباشرة بعقدة أخرى عند الانتقال بعيدًا عن الجذر.

الوالد : الفكرة العكسية للطفل.

الأشقاء : مجموعة من العقد مع نفس الوالد.

السليل : يمكن الوصول إلى العقدة من خلال إجراء متكرر من الوالد إلى الطفل.

السلف : يمكن الوصول إلى العقدة من خلال إجراء متكرر من الطفل إلى الوالد.

الفرع (العقدة الداخلية): عقدة لشجرة لها عقد فرعية.

ورقة (أقل شيوعا تسمى العقدة الخارجية): عقدة بدون أطفال.

الدرجة العلمية : عدد الألواح الفرعية لعقدة.

الحافة : الاتصال بين عقدة واحدة وأخرى.

المسار : تسلسل من العقد والحواف التي تربط العقدة مع سليل.

المستوى : يتم تعريف مستوى العقدة بواسطة 1 + (عدد الاتصالات بين العقدة والجذر).

ارتفاع الشجرة : ارتفاع الشجرة هو ارتفاع العقدة الجذرية الخاصة بها.

العمق : عمق العقدة هو عدد الحواف من العقدة الجذرية للشجرة إلى العقدة.

غابة : الغابة هي مجموعة من الأشجار المنفصلة n ≥ 0.

بعض أنواع الأشجار الشائعة:

  • شجرة ثنائية
  • شجرة البحث الثنائية
  • شجرة AVL
  • أحمر أسود شجرة
  • شجرة Splay
  • شجرة هوفمان

الاستخدامات الشائعة

  • تمثل البيانات الهرمية
  • تخزين البيانات بطريقة تجعلها سهلة البحث
  • تمثل قوائم مرتبة من البيانات
  • خوارزميات التوجيه

رمز عقدة شجرة

`` `c_cpp العقدة الهيكلية { بيانات int؛ // عنصر البيانات العقدة الهيكلية * اليسار ؛ // المؤشر إلى العقدة اليسرى العقدة الهيكلية * // المؤشر إلى العقدة اليمنى }؛

`` `

معلومات اكثر: