مكتبة جافا أو خوارزمية لحساب إحداثيات العقد الشجرة / الرسم
-
29-09-2019 - |
سؤال
أبحث عن مكتبة تعطيني إحداثيات دقيقة لكل عقدة في شجرة (أي شجرة ، وليس فقط الأشجار الثنائية).
دعنا نقول أنني حدد الشجرة في الترميز التالي
(() (() (() () ()))
وبعض المكتبات تعطيني الإحداثيات مثل هذا:
[500 0]([200 50]() [600 50]([500 100]() [750 100]([600 150]() [700 150]() [800 150]()))
أو أي تدوين آخر يمثل شجرة بشكل فريد.
سيمكن هذا النوع من المكتبات رسمًا فعالًا للأشجار وسيحل أيضًا مشكلة التداخل في العقد والروابط. على سبيل المثال ، إذا كانت الشجرة عبارة عن قائمة قائمة ، فأود أن تأخذ المكتبة ذلك في الاعتبار وترتيب العقد في عمود واحد أو صف ، لتوفير مساحة.
إذا لم يكن هناك شيء مشابه ، ستصبح خوارزمية مفيدة أيضًا, ، شريطة أن يتم تنفيذها بسهولة نسبيا.
المحلول
اعتقد ان مجموعة متداخلة قد يساعدك النموذج.
الخوارزمية بسيطة إلى حد ما ، وفعالة للغاية للقراءات ، على الرغم من أن التحديثات إلى الشجرة أغلى قليلاً ، لأنه يجب تحديث حدود العقد بطريقة متتالية. هنا هي الخوارزمية التي تم تنفيذها في SQL.