【问题标题】:What can be stored in the bucket of hash table in CC语言hash表的bucket中可以存储什么
【发布时间】:2014-02-04 15:46:39
【问题描述】:

我是散列新手,所以我想知道我是否有像下面这样的结构并且我正在使用散列函数来可能键值,我如何将第三个元素编号存储到散列表中?

我在 github 上发现了很多带有键/值的实现,但我很困惑如何存储另一个值,它可能不会用键散列,只需要存储它。

struct my_struct
{

int key;

char value[512];

int number;

};

【问题讨论】:

  • 第一个“事物”听起来像 C++ 中的 std::map,第二个选项听起来更像是一个 SQL 数据库。
  • 您只需将您想要存储在哈希中的任何内容作为值的一部分。

标签: c hashtable


【解决方案1】:

一个典型的哈希表实现有一个要存储在哈希表中的结构的“表”(数组)。像这样的

struct my_struct hash_table[SOME_SIZE];

然后您计算密钥并将其存储在数组中的位置key % SOME_SIZE。结构中的额外数据照常填写。

为了避免冲突,表中的每个条目实际上是一个链表,因此存储在表中相同位置的多个键是链表中的一个节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2015-06-08
    相关资源
    最近更新 更多