用数组添加哈希表结构

时间:2017-07-19 23:12:36

标签: c arrays struct hash

typedef struct veri{
int k[9],v[10];
}v;
v a[27];
int h(int x){
return x%27;
}


int put (v data){
if(a[h(data.k)].k == -1){
    a[h(data.k)] = data;
    return 1;
}
else {
    int donusSayisi =0;
    int indis = h(data.k);
    while(a[indis].k != data.k && a[indis].k!=-1){
    //printf("%d %d %d \n",a[indis].k, data.k, indis);
        indis ++;
        if(indis>=27){
            if(donusSayisi>=1){
                printf("hashtable dolu\n");
                return -1;
            }
            indis = indis %27;
            donusSayisi++;
        }
    }

    a[indis].v[indis]= data.v[indis];
    a[indis].k[indis] = data.k[indis];

}

}

我正在尝试使用数组创建哈希表。但是不能添加它。我不能把它拿到它。我的错误。我因为这个错误而变得疯狂。这不是我的所有代码只是一部分..

if(a[h(data.k)].k == -1){

传递'h'的参数1使得没有强制转换的指针产生整数 指针和整数之间的比较

return a[indis].v;

return从没有强制转换的指针生成整数

0 个答案:

没有答案