如何hash一条有向边

时间:2024-06-21 13:06:56

之前这个问题还困扰了我好久,但是现在我才明白这个很蠢的问题

那就是(3,7)(4,9)(3,3)这种有向序点对(括号可能用的不对)

我们可以变成对“(3,7)”字符串的hash,当然我觉得括号可以去掉

具体可以用下面这个函数

unsigned int BKDRhash(TYPE key)
{//BKDRhash函数
unsigned int seed = ;
unsigned int hash = ; while(*key != '\n' && *key != ) //通常使用时,判别条件为*key != 0即可,此处的*key != '\n'是因笔者程序需要
hash = hash * seed + (*key++); return hash % DICLEN;
}

有一个写的较完善的hash表利用这个字符串hash函数,http://www.cnblogs.com/liuliuliu/p/3966851.html

我们还可以a*base+b*base*base类似整数hash。。。