يوفر هذا الفئة الأساس لبناء حاوية تري.
على شكله الأساسي ، يمكن استخدام فئة TTRIE لتخزين عناصر البيانات القائمة على 16 و 32 و 64 بت.
يوفر الهيكل تطبيقًا ثابتًا للعمق الثابت ، والذي بدوره يجعل الوقت متساوًا في العثور على العقد وإزالتها وإضافة.
ترتيب الهيكل هو O (D) حيث D هو عمق trie ، والذي يعتمد على ما إذا كان تم إنشاؤه لتخزين 16 أو 32 أو 64 بت. مقابل 16 بت D = 4 مقابل 32 بت D = 8 و 64 بت D = 16
للحفاظ على حجم العقدة صغيرًا ، سيتم استخدام 16 فرعًا فقط لكل عقدة ويتم ترميز أعلام المؤشرات ومؤشرات المؤشر الداخلي بكلمة 16 بت وفي عدد صحيح 64 بت.
تتم إدارة المؤشرات إلى الفروع ديناميكيًا ، لذا يتم تخصيص مؤشر فقط على صفيف المؤشرات عند إضافة فرع جديد ، وهذا يقلل من إهدار مجموعة المؤشرات المسبقة مسبقًا إلى فروع المستوى الأدنى. سوف يضيف التباطؤ على الرغم من.
يتم تخصيص الأوراق في مكانها بدلاً من أن تكون العقد الفردية تشير إلى العقدة الفرعية الأخيرة.
أخيرًا ، يمكن التحكم في عقد الأوراق ديناميكيًا بواسطة الفئة المشتقة من TTRIE مما يتيح تنفيذ القواميس بسهولة باستخدام TTRIE كقاعدة.
الكل في الكل ، يؤدي إجراء بعض الاختبارات التي تخزن الذاكرة التي يخصصها Lazarus (Freepascal) في جهاز Mac إلى كفاءة تخزين بنسبة 40 ٪ بما يتناسب مع حجم الكائنات المخزنة ، وهو أمر غير سيء بالنظر إلى الأداء لإضافة وإيجاد العمليات.
يوفر الفئة أيضًا طريقة حزمة تستخدم للحفاظ على التخزين في حالة فحص الكثير من الإزالة.
يتم توفير Tintegerhashtrie و Tstringhashtrie كأحفاد من فئة Thashtrie العامة. لدى Thashtrie وضعان للتشغيل:
يوفر جدول التجزئة أداءً أفضل بالطبع ، لكن Hashtrie لديه بصمة ذاكرة أكثر كفاءة عند تخزين عدد صغير من العناصر.
تم اختبار Tstringhashtrie ضد فئات Tdictionary's Delphi <> و C# <>.
Tstringhashtrie يتفوق على حد سواء ، C# و Delphi تطبيقات. الفرق أكبر عند استخدام جدول التجزئة لعقدة الجذر.
بصمة الذاكرة بشكل عام للأحمال الكبيرة هي أيضًا أفضل ، حيث تتراوح بين 30 ٪ -40 ٪ أفضل. بالنسبة لعدد صغير من العناصر بشكل نهائي باستخدام Hashtrie Pure بدلاً من عقدة جذر جدول التجزئة ، ستستخدم ذاكرة أقل بشكل كبير.
أنتجت الاختبارات التي تم تجميعها في Delphi 2007 نتائج أفضل لأن الأوتار لم يكن مضطرًا للخضوع للتحويل من UTF16 إلى ANSI قبل الإدراج في الهيكل.
TSTRINGHASHTRIE دعم UNICODE في نموذج UTF8.