مكتبة جافا أو خوارزمية لحساب إحداثيات العقد الشجرة / الرسم

StackOverflow https://stackoverflow.com/questions/4125034

  •  29-09-2019
  •  | 
  •  

سؤال

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

دعنا نقول أنني حدد الشجرة في الترميز التالي

(() (() (() () ())) 

وبعض المكتبات تعطيني الإحداثيات مثل هذا:

[500 0]([200 50]() [600 50]([500 100]() [750 100]([600 150]() [700 150]() [800 150]())) 

أو أي تدوين آخر يمثل شجرة بشكل فريد.

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

إذا لم يكن هناك شيء مشابه ، ستصبح خوارزمية مفيدة أيضًا, ، شريطة أن يتم تنفيذها بسهولة نسبيا.

هل كانت مفيدة؟

المحلول

اعتقد ان مجموعة متداخلة قد يساعدك النموذج.

الخوارزمية بسيطة إلى حد ما ، وفعالة للغاية للقراءات ، على الرغم من أن التحديثات إلى الشجرة أغلى قليلاً ، لأنه يجب تحديث حدود العقد بطريقة متتالية. هنا هي الخوارزمية التي تم تنفيذها في SQL.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top