Структура Hash Array Mapped Trie

Нужно реализовать структуру trie-хэширования или же Hash Array Mapped Trie. HAMT состоит из главной хэш таблицы, каждый элемент которой:

  1. либо узел указатель на подтаблицу (Sub-Hash table) + целое bitmap
  2. либо пару ключ-значение (Key-Value).

Есть наброски, но я не знаю, как это всё собрать воедино, в одну структуру.

struct HAMTEntry
{
    const char* str;
    void* data;
};

typedef struct HAMTNode
{
    unsigned long BitMapKey;
    uintptr_t BaseValue; 
} HAMTNode;

typedef struct HAMT
{
    HAMTNode* root;
    unsigned long (*HashKey) (const char* key);
    unsigned long (*ReHashKey) (const char* key, int Level);
    int (*CmpKey) (const char* s1, const char* s2);
} HAMT;

Ответы (0 шт):