C地图数据结构

时间:2011-04-14 03:37:46

标签: c hashmap

我想在C中实现一个键值对数据结构。任何想法?

3 个答案:

答案 0 :(得分:11)

  

This是一个简单的哈希表   在ANSI C中实现。它支持   一般的基本功能   期望哈希表:

  • 插入和检索键值关联
  • 查询是否存在密钥
  • 返回键值关联的总数
  • 枚举所有键值关联

希望这有帮助!

答案 1 :(得分:5)

如果您的键和值部分是相同的数据类型,那么您可以使用具有2列的二维数组,其中第一列将是您的键,第二列将是数据。 IT将表现为地图,但时间复杂性将不同。 时间复杂度: 搜索 - O(n) 插入 - 想要保持唯一键然后O(n) 其他     O(1)。

int map[N][2];

如果你想让键值对不同,你可以使用列表结构。

struct node
{
int key;  //key part
string value;  // value part
struct node *next;
};

时间复杂度: 搜索 - O(n) 插入 - 想要保持唯一键然后O(n) 其他     O(1)。

答案 2 :(得分:0)

libmba中的hashmap实现也支持典型的映射函数。

我刚刚发现它,虽然我没有使用它。您还可以检查库项目homepage

我希望它可能对某人有用。