if (bucket->head_node_ == NULL) { Value* new_value = NULL; Node* new_node = ApplyForOneNode(); //申请 key if (new_node == NULL) { return NULL; } if (!value) { new_value = value_mem->ApplyOneValue(1); //申请 value } else { new_value = value; new_value->use_count_++; } if (new_value == NULL) { return NULL; } bucket->head_node_ = new_node; bucket->head_node_->next_node_ = NULL; bucket->head_node_->value_ = new_value; DupKey(new_node->key_, key_data); SetConflictCount(INSERT_TYPE, conflict_count); return bucket->head_node_; }else {什么意思
时间: 2024-02-14 17:32:18 浏览: 68
token-project.zip_rate control_token bucket
这段代码是一个哈希表中的插入操作。如果哈希桶中的头结点为空,说明这个桶还没有被使用过,需要先申请一个新的节点并将其作为头结点。在申请新节点的同时,也要申请一个新的值作为节点的值(如果传入的值为空,则需要申请一个大小为1的新值)。最后,将新节点的键值复制为插入的键值,设置冲突计数并返回新节点。
如果哈希桶中已经存在节点,则需要在已有节点的基础上进行插入操作。
阅读全文