【发布时间】:2011-04-14 03:37:46
【问题描述】:
我想在 C 中实现一个键值对数据结构。有什么想法吗?
【问题讨论】:
-
你映射到什么?你需要什么功能?
-
int 到 int 的映射。 EX 1 -> 2 3 -> 5
我想在 C 中实现一个键值对数据结构。有什么想法吗?
【问题讨论】:
【讨论】:
如果您的键和值部分是相同的数据类型,那么您可以使用具有 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)。
【讨论】: