你好我想从哈希表中的键中删除指定的元素但是我有的函数,删除我插入到键中的最后一个值。我需要两个参数进入我的函数。例如我想要删除元素3来自关键1。
Key:1 Elements:2 4 3
Key:2 Elements:5 6 7
删除后(例如删除(1,3))我想要这样的密钥:1个元素:2 4
void HashTable::Remove(int key)
{
int hash_val = HashFunc(key);
HashNode* entry = htable[hash_val];
HashNode* prev = NULL;
if (entry == NULL || entry->key != key)
{
cout<<"No Element found at key "<<key<<endl;
return;
}
while (entry->next != NULL)
{
prev = entry;
entry = entry->next;
}
if (prev != NULL)
{
prev->next = entry->next;
}
delete entry;
cout<< "Element Deleted" <<endl;
}
有什么想法吗?
我尝试了这个,但它总是不起作用。
void HashTable::Remove(int key,int value)
{
int hash_val = HashFunc(key);
HashNode* entry = htable[hash_val];
while (entry != NULL)
{
if (entry->key == key)
{
if(entry->value == value)
{
delete entry;
break;
}
// cout<<entry->value<<" ";
}
entry = entry->next;
}
}