我应该建立一个字典Trie并使用节点。我需要将它们存储在哈希表中。我需要创建一个哈希函数来将节点放在正确的位置。如何将字符串转换为哈希函数中的整数?
答案 0 :(得分:0)
一个常见的哈希示例,虽然不一定是好的,但是要取字符串中每个字符的ascii值的总和,以模式哈希表的大小为模。
答案 1 :(得分:0)
你可以试试卡丁车。它使用一个聪明的密钥交替算法来隐藏二叉树中的trie-data结构:http://code.dogmap.org/kart/。
长度为klen的密钥k中位置pos处的平移位可以计算为:
unsigned int bit(size_t pos, unsigned char const* k, size_t klen) {
if (pos/(CHAR_BIT+1)>=klen) return 0;
if (pos%(CHAR_BIT+1)==0) return 1;
return (((unsigned int)k[pos/(CHAR_BIT+1)])>>(CHAR_BIT-pos%(CHAR_BIT+1)))&(unsigned int)1;
}