شجرة ثلاثية

شجرة ثلاثية بسيطة بحجم 10 وارتفاع 2.

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

تُستخدم الأشجار الثلاثية لتنفيذ أشجار البحث الثلاثية والأكوام الثلاثية .

تعريف

  • الحافة الموجهة - الرابط من الأصل إلى الفرع.
  • الجذر - العقدة التي ليس لها آباء. يوجد على الأكثر عقدة جذر واحدة في الشجرة الجذرية.
  • العقدة الورقية - أي عقدة ليس لها أبناء.
  • العقدة الأبوية - أي عقدة متصلة بحافة موجهة بعقدتها الفرعية أو عقدها الفرعية.
  • العقدة الفرعية - أي عقدة متصلة بعقدة أصلية بواسطة حافة موجهة.
  • العمق - طول المسار من الجذر إلى العقدة. تُسمى مجموعة جميع العقد عند عمق معين أحيانًا مستوى من مستويات الشجرة. تقع عقدة الجذر عند العمق صفر.
  • الارتفاع - طول المسار من الجذر إلى أعمق عقدة في الشجرة. الشجرة (ذات الجذر) التي تحتوي على عقدة واحدة فقط (الجذر) يكون ارتفاعها صفرًا. في الرسم التوضيحي، يبلغ ارتفاع الشجرة 2.
  • الأشقاء - العقد التي تشترك في نفس العقدة الأبوية.
  • تُعتبر العقدة p سلفًا للعقدة q إذا كانت موجودة على المسار من q إلى الجذر. وتُسمى العقدة q حينها سليلًا للعقدة p.
  • حجم العقدة هو عدد الفروع التابعة لها، بما في ذلك العقدة نفسها .

خصائص الأشجار الثلاثية

  • الحد الأقصى لعدد العقد

- يتركح{\displaystyle h}يكون ارتفاع الشجرة الثلاثية.

- يتركم(ح){\displaystyle M(h)}ليكن الحد الأقصى لعدد العقد في شجرة ثلاثية ذات ارتفاعح{\displaystyle h}

حم ( ح )
01
14
213
340

م(ح)=1+3+9++3ح=أنا=0ح3أنا=3ح+1-12{\displaystyle M(h)=1+3+9+\cdots +3^{h}=\sum _{i=0}^{h}3^{i}={\frac {3^{h+1}-1}{2}}}

– كل شجرة بارتفاع h لديها على الأكثر3ح+1-12{\displaystyle {\frac {3^{h+1}-1}{2}}}العقد.

  • إذا تم اعتبار خوارزمية البحث بالعرض أولاً (BFS) للبحث في بنية بيانات الشجرة الثلاثية، فإن :  
    • إذا كانت العقدةشمال{\displaystyle N}يحتل شجرة[ك]{\displaystyle [k]}ثم يتم تخزين الطفل الأيسر في الشجرة[3ك-1]{\displaystyle [3k-1]}
    • يتم تخزين بيانات الطفل الأوسط في TREE[3ك]{\displaystyle [3k]}
    • يتم تخزين الطفل الأيمن في الشجرة[3ك+1]{\displaystyle [3k+1]}

هنا،[ك]{\displaystyle [k]}يشير إلى موضع العقدة بناءً على التسلسل في اجتياز الشجرة باستخدام خيار خوارزمية البحث بالعرض أولاً (BFS).

العمليات المشتركة

الإدخال

يمكن إدراج العقد في الأشجار الثلاثية بين ثلاث عقد أخرى أو إضافتها بعد عقدة خارجية . في الأشجار الثلاثية، يتم تحديد العقدة المُدرجة من حيث كونها فرعاً.

العقد الخارجية

لنفترض أن العقدة الخارجية التي تتم إضافتها هي العقدة A. لإضافة عقدة جديدة بعد العقدة A، تقوم A بتعيين العقدة الجديدة كواحدة من أبنائها وتقوم العقدة الجديدة بتعيين العقدة A كوالد لها.

العقد الداخلية

تُعدّ عملية الإضافة على العُقد الداخلية أكثر تعقيدًا من إضافتها على العُقد الخارجية. لنفترض أن العُقدة الداخلية هي العُقدة A، وأن العُقدة B هي ابن A. (إذا كانت الإضافة هي إضافة ابن أيمن، فإن B هو الابن الأيمن لـ A، وينطبق الأمر نفسه على إضافة ابن أيسر أو ابن وسطي). تُسند A ابنها إلى العُقدة الجديدة، وتُسند العُقدة الجديدة والدها إلى A. ثم تُسند العُقدة الجديدة ابنها إلى B، وتُسند B والدها إلى العُقدة الجديدة.

الحذف

الحذف هو العملية التي يتم من خلالها إزالة عقدة من الشجرة. ولا يمكن إزالة سوى عقد معينة بشكل قاطع في الشجرة الثلاثية.

عقدة تحتوي على صفر أو واحد من الأبناء

لنفترض أن العقدة المراد حذفها هي العقدة A. إذا لم يكن للعقدة أي أبناء ( عقدة خارجية )، يتم الحذف بتعيين قيمة ابن العقدة الأب للعقدة A إلى null ، وقيمة والد العقدة A إلى null أيضًا. أما إذا كان لها ابن واحد، فيتم تعيين قيمة والد ابن العقدة A إلى قيمة والد العقدة A، وقيمة ابن والد العقدة A إلى قيمة ابن العقدة A.

مقارنة مع الأشجار الأخرى

الصورة أدناه هي شجرة بحث ثنائية تمثل 12 كلمة من حرفين. جميع العقد في الفرع الأيسر لها قيم أصغر، بينما جميع العقد في الفرع الأيمن لها قيم أكبر. يبدأ البحث من الجذر. للعثور على كلمة "ON"، نقارنها بكلمة "IN" ونختار الفرع الأيمن. كل مقارنة تتيح الوصول إلى كل حرف من الكلمتين.

 في / \ كن من / \ / \ كما هو أو \\ \\ \\ / \\ ثم انتقل إلى

يحاول البحث الرقمي تخزين السلاسل حرفًا حرفًا. الصورة التالية عبارة عن شجرة تمثل نفس المجموعة المكونة من 12 كلمة؛

 _ _ _ _ _ _ _ _ _ _ _ _ _ / / / \ \ \ / / / \ \ \ أبهيوت / \ / \ | / | \ /|\ | steyenstfnro كما في يكون بواسطة هو في هو من على أو إلى

تُعرض كل كلمة مُدخلة أسفل العقدة التي تُمثلها. في شجرة تُمثل الكلمات ذات الأحرف الصغيرة، تحتوي كل عقدة على 26 فرعًا. عمليات البحث سريعة جدًا: يبدأ البحث عن "IS" من الجذر، ثم يسلك فرع "I"، ثم فرع "S"، وينتهي عند العقدة المطلوبة. عند كل عقدة، يتم الوصول إلى عنصر من عناصر المصفوفة، والتحقق من قيمته (ليست فارغة)، ثم يسلك أحد الفروع.

 أنا / | \ / | \ bso / | \ / \ | \ aehntnt | \ | / \ | سيفرو \ ت

الصورة أعلاه هي شجرة بحث ثلاثية متوازنة لنفس مجموعة الكلمات الاثنتي عشرة. تُعرض المؤشرات الدنيا والعليا بخطوط مائلة، بينما تُعرض المؤشرات المتساوية بخطوط عمودية. يبدأ البحث عن الكلمة "IS" من الجذر، وينتقل نزولًا عبر الفرع المتساوي إلى العقدة ذات القيمة "S"، ويتوقف هناك بعد مقارنتين. أما البحث عن "AX" فيُجري ثلاث مقارنات مع الحرف الأول "A" ومقارنتين مع الحرف الثاني "X" قبل الإبلاغ عن أن الكلمة غير موجودة في الشجرة. [ 1 ]

أمثلة على الأشجار الثلاثية

انظر أيضاً

مراجع

  1. جون بنتلي وبوب سيدجويك (1998)، مجلة دكتور دوب
  2. برايس، إتش. لي (2008). "شجرة فيثاغورس: نوع جديد". arXiv : 0809.4324 [ math.HO ].