What is a Tree؟
التعريف الرياضي
الشجرة هي رسم بياني غير موجه (Undirected Graph) يحقق شرطين معاً:
- Connected: متصل (يوجد مسار بين أي نقطتين).
- Acyclic: لا يحتوي على أي دورة (No simple circuits).
Forest (الغابة): مجموعة من الأشجار المنفصلة (Graph بدون دورات ولكن قد يكون غير متصل).
Tree ✅
Not Tree ❌ (Cycle)
Rooted Trees Terminology
عندما نختار رأساً ليكون "الجذر" ونوجه الحواف بعيداً عنه، نحصل على Rooted Tree.
m-ary Trees
أنواع الأشجار حسب التفريغ
- m-ary Tree: كل عقدة داخلية لها على الأكثر $m$ أبناء.
- Full m-ary Tree: كل عقدة داخلية لها بالضبط $m$ أبناء.
- Binary Tree: هي m-ary tree حيث $m=2$.
Counting Theorems (قوانين العد)
Tree with $n$ vertices $\to$ $n-1$ edges
Full m-ary Tree:
$n = m \cdot i + 1$
$l = (m-1)i + 1$
$i = (l-1)/(m-1)$
$i$: Internal vertices
$l$: Leaves
Full m-ary Tree Definition
هل الشجرة التي فيها عقدة لها ابن واحد وعقدة أخرى لها ابنان تعتبر "Full Binary Tree"؟
لا!
في الـ Full Binary Tree، كل عقدة داخلية يجب أن يكون لها بالضبط 2 أبناء. لا يُسمح بـ 1.
Height of m-ary Tree
لشجرة $m$-ary كاملة بـ $l$ ورقة:
أقل ارتفاع ممكن (Balanced): $h = \lceil \log_m l \rceil$.
هذا القانون يحدد كفاءة الأشجار في تخزين البيانات (كما في BST).