c_cpp c的哈希表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp c的哈希表相关的知识,希望对你有一定的参考价值。
#include <stdlib.h>
#define SIZE 1024
static int (**hnew())[2]
{
return calloc(sizeof(int**), SIZE);
}
static void hdel(int (**e)[2])
{
for (int i = 0; i < SIZE; i++) free(e[i]);
free(e);
}
static int (**hget(int (**t)[2], int k))[2]
{
for (int h = k & (SIZE - 1); **t && ***t != k; h = ((h + 1) & (SIZE - 1)), t += h);
return t;
}
static void hset(int (**t)[2], int k, int v)
{
for (int (**a)[2] = hget(t, k); !*a && (*a = malloc(sizeof(**t))); (**a)[0] = k, (**a)[1] = v);
}
// TEST DRIVER
#include <stdio.h>
int main()
{
int (**table)[2] = hnew();
hset(table, 10, 20);
hset(table, 20, 30);
hset(table, 30, 40);
int (**a)[2] = hget(table, 10);
int (**b)[2] = hget(table, 20);
int (**c)[2] = hget(table, 30);
printf("%d:%d\n", (**a)[0], (**a)[1]);
printf("%d:%d\n", (**b)[0], (**b)[1]);
printf("%d:%d\n", (**c)[0], (**c)[1]);
hdel(table);
}
以上是关于c_cpp c的哈希表的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp C中的哈希表环境类
c_cpp c中的快速哈希表实现。
c_cpp 哈希表实现
c_cpp 为字符串实现哈希表和哈希函数
c_cpp 为字符串实现哈希表和哈希函数
c_cpp 在C中的哈希表,它可以解决重复问题。