基于Trie的哈希函数实现

时间:2014-11-22 21:04:36

标签: java dictionary hash trie

我应该建立一个字典Trie并使用节点。我需要将它们存储在哈希表中。我需要创建一个哈希函数来将节点放在正确的位置。如何将字符串转换为哈希函数中的整数?

2 个答案:

答案 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; }