Стоит отметить, что их часто называют деревьями Джуди или Триами Джуди, если вы ищете их в Google.
Я также искал реализацию .Net, но ничего не нашел.
Также стоит отметить, что:
Реализация в значительной степени рассчитана на эффективное использование кэша, поскольку такие особенности реализации могут сильно зависеть от размера определенных конструкций, используемых в подструктурах. В этом отношении управляемая реализация .Net может несколько отличаться.
Есть некоторые существенные препятствия, которые я могу видеть (и, возможно, есть и другие, которые я пропустил при кратком сканировании)
- API имеет некоторые довольно анти-OO-аспекты (например, нулевой указатель рассматривается как пустое дерево), поэтому он упрощен, переместите указатель состояния в LHS и заставьте преобразование методов экземпляра функции в C ++ не работать.
- Реализация подструктур, на которые я смотрел, интенсивно использовала указатели. Я не вижу, чтобы они эффективно переводились в ссылки на управляемых языках.
- Реализация является воплощением множества очень сложных идей, которые противоречат простоте общедоступного API.
- База кода составляет около 20 тыс. Строк (большая часть сложная), это не кажется мне простым портом.
Вы можете взять библиотеку и обернуть код C в C ++ / CLI (возможно, просто внутренне удерживая указатель, который является страницей приложения, и все вызовы c указывают на него). Это обеспечило бы упрощенную реализацию, но связанные библиотеки для нативной реализации могут быть проблематичными (как и распределение памяти).
Вам также, вероятно, понадобится преобразовать строки .Net в обычный старый байт * при переходе (или просто работать с байтами напрямую)