Fundamental Terminology
مصطلحات الشجرة
- Root (الجذر): العقدة الوحيدة التي ليس لها أب (Parent) .
- Leaf (الورقة): العقدة التي ليس لها أبناء (Children) .
- Siblings (الأخوة): عقد لها نفس الأب.
- Depth (العمق): طول المسار من الجذر إلى العقدة (Root depth = 0).
- Height (الارتفاع): طول أطول مسار من العقدة إلى ورقة (Leaf height = 0).
Tree Traversals
كيف تزور كل العقد في الشجرة؟ هناك 3 طرق رئيسية:
Preorder (قبل)
تزور العقدة الحالية أولاً، ثم أبناءها.
مفيد لنسخ الشجرة (Copying).
Inorder (بين)
تزور اليسار، ثم العقدة، ثم اليمين.
في الـ BST: يطبع العناصر مرتبة تصاعدياً!
Postorder (بعد)
تزور الأبناء أولاً، ثم العقدة.
مفيد لحذف الشجرة (Deleting) أو حساب حجم الملفات.
Binary Search Tree (BST)
قاعدة الـ BST الذهبية
Left Subtree < Node < Right Subtree
(لأننا نستبعد نصف الشجرة في كل خطوة).
Removing Node with 2 Children
لا يمكنك حذف العقدة مباشرة!
الحل: استبدل قيمتها بأصغر قيمة في اليمين (Min of Right Subtree)، ثم احذف تلك العقدة الصغيرة (التي سيكون لها طفل واحد أو لا شيء) .
Expression Tree Traversal
شجرة التعبير $a + b * c$:
Inorder: $a + b * c$ (المعادلة الأصلية).
Postorder: $a b c * +$ (Postfix).
Preorder: $+ a * b c$ (Prefix).