سؤال

مجموعة جودي هو بنية بيانات سريعة قد تمثل مجموعة متناثرة أو مجموعة من القيم. هل هناك تنفيذها للغات المدارة مثل C #؟ شكرا

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

المحلول

تجدر الإشارة إلى أن هذه غالبا ما تسمى أشجار جودي أو جودي محاولات إذا كنت googling لهم.

لقد بحثت أيضا عن تنفيذ .NET ولكن لم أجد شيئا. تجدر الإشارة أيضا إلى أن:

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

هناك بعض العقبات الكبيرة التي يمكنني رؤيتها (وهناك أكثر من ذلك فائقة الفحص الموجز)

  • يحتوي API على بعض جوانب OO إلى حد ما (على سبيل المثال، يتم عرض مؤشر NULL كشجرة فارغة) تبسيطا جدا، ونقل مؤشر الحالة إلى LHS وجعل وظائف مثيل أساليب التحويل إلى C ++ لن يعمل.
  • تنفيذ الهياكل الفرعية التي نظرت إليها للاستخدام الشديد للمؤشرات. لا أستطيع رؤية هذه المترجمة بكفاءة إلى المراجع باللغات المدارة.
  • التنفيذ هو تقطير الكثير من الأفكار المعقدة للغاية يعتنق بساطة API العامة.
  • تبلغ قاعدة التعليمات البرمجية حوالي 20 ألف خطوط (معظمها من مجمع تكنولوجيا المعلومات)، وهذا لا يضربني كمنفذ سهل.

يمكنك أن تأخذ المكتبة ولف Code C في C ++ / CLI (ربما تكون ببساطة متاحا داخليا مؤشرا هو Trie API C ووجود جميع المكالمات C إلى هذا واحد). هذا من شأنه أن يوفر هذا التنفيذ التبسيط ولكن المكتبات المرتبطة للتنفيذ الأصلي قد تكون مشكلة (كما قد تخصيص الذاكرة). ربما تحتاج أيضا إلى التعامل مع تحويل سلاسل .NET إلى البايت القديم العادي * على الانتقال أيضا (أو مجرد عمل مع بايت مباشرة)

نصائح أخرى

جودي حقا لا يصلح جيدا مع اللغات المدارة. لا أعتقد أنك ستتمكن من استخدام شيء مثل Swig والحصول على الطبقة الأولى التي تتم تلقائيا.

كتبت Pyjudy وانتهى بي الأمر إلى إجراء بعض التغييرات في واجهة برمجة تطبيقات غير تافهة لتناسب بشكل جيد في بيثون. على سبيل المثال، كتبت في الوثائق:

صفيفات الهيائل خريطة الكلمات إلى كلمات آلة. في الممارسة العملية تخزين الكلمات الأعداد الصحيحة أو المؤشرات غير الموقعة. يدعم Pyjudy جميع التعيينات الأربعة كما فصول مميزة.

  • pyjudy.judylintint - خريطة مفاتيح عدد صحيح غير موقعة للقيم الصحيحة غير الموقعة
  • pyjudy.judylintobj - خريطة مفاتيح عدد صحيح غير موقعة لقيم كائن بيثون
  • pyjudy.judylobjint - خريطة بيثون كائنات كائنات إلى القيم الصحيحة غير الموقعة
  • pyjudy.judylobjobj - خريطة بيثون كائنات كائنات لقيم كائن بيثون

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

لا أستطيع الإشارة إلى بدائل جودي - هذا أسباب واحد لماذا أبحث في Stackoverflow.

تحرير: قيل لي أن أرقام توقيتي في الوثائق مقطوعة من ما تشير وثائق جودي إلى أن جودي قد تم تطوير خطوط ذاكرة التخزين المؤقت 64 بت، وكان بلدي Powerbook 22 بت فقط.

بعض الروابط الأخرى:

يحتوي الأخير على أرقام مقارنة لمختلف تطبيقات الترويجية عالية الأداء.

هذا هو إثبات صعوبة مما اعتقدت. pyjudy. قد يكون يستحق نظرة، كما سيكون التعادل :: جودي. وبعد هناك شيء Softpedia., ، وشيء روبي العش. وبعد المشكلة هي أنه لا شيء من هذه .NET على وجه التحديد.

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