微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修改此代码以将结构作为元素而不是字符串插入 Hashtable 中?

如何解决如何修改此代码以将结构作为元素而不是字符串插入 Hashtable 中?

我正在使用以下代码来实现一个包含字符串作为值的哈希表。 我知道我可以使用结构作为元素来对哈希表进行结构声明,如下所示:

struct Ht_item {
    int key;
    struct value *v; };

但是当我尝试修改这些函数时,它没有将结构体“值”正确复制到结构体项中。有人可以帮我解决这个问题吗?

Ht_item* create_item(int key,struct value *v) {
    Ht_item* item = (Ht_item*) malloc (sizeof(Ht_item));
    item->key = (int*) malloc (1*sizeof(key));
    item->value = value *v = (value*)malloc(sizeof(value));
    item->key= key;
    item->value=value;
    return item; } 
void ht_insert(HashTable* table,int key,struct value *v) {
        Ht_item* item = create_item(key,value);
        unsigned long index = hash_function(key);
        Ht_item* current_item = table->items[index];
        if (current_item == NULL) {
            if (table->count == table->size) {
                printf("Insert Error: Hash Table is full\n");
                free_item(item);
                return;
            }
            table->items[index] = item;
            table->count++;
        }
    
        else {
                if (strcmp(current_item->key,key) == 0) {
                    table->items[index]->value= value;
                    return;
                }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。