【问题标题】:Hash Function for Trie based implementation基于 Trie 实现的哈希函数
【发布时间】:2014-11-22 21:04:35
【问题描述】:

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

【问题讨论】:

标签: java dictionary hash trie


【解决方案1】:

一个常见的散列示例,虽然不一定是一个好的示例,是对字符串中每个字符的 ascii 值求和,以散列表的大小为模。

【讨论】:

    【解决方案2】:

    你可以试试卡丁车。它使用巧妙的密钥交替算法在二叉树中隐藏 trie 数据结构: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; }

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2021-04-06
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 2016-05-26
      • 2015-02-02
      • 2017-05-02
      相关资源
      最近更新 更多