哈希表对元素的删除,哪里有问题?为什么直接赋值空关键字无法替换原有元素?

img


 //删除哈希表元素
int DEL_HashTable(HashTable *hash, int key, int address) 
{
    int result = searchHash(hash, key,address);
    if(result == 1)//查找数据成功,将地址置为空 
    {                           //在显示哈希表时读到NULLKEY就会显示地址元素为空
        hash->elem[address] = NULLKEY;//为什么在这里直接赋值空关键字删除元素不成功?
        hash->count--; 
    //    free(hash->elem[address]);
        printf("删除成功!\n");
    //    searchHash(hash, key,address);
        return 1;//成功删除元素 
    }
    else 
    {
        printf("删除失败!\n"); 
        return 0;//没有找到数据,删除失败 
    }
}

NULLKEY是空关键字

运行结果:

img