我一直很难找到一个体面的解释。我正在使用 C++ 编写一个线性探测哈希表,但我遇到了remove()
操作问题。我正在散列一个字典集合strings
,我想知道如何将索引i
删除设置为已删除,以便search()
andinsert()
正常工作。任何帮助/伪代码都会很棒,谢谢。我现在最好的猜测是调用某种结构对象deleted
并将其放置在那里。
问问题
135 次
1 回答
0
每个桶可以是一个struct
包含键、值和一个标志来指示桶是否为空,如下所示:
struct bucket
{
std::string key;
std::string value;
bool empty = true;
};
然后你可以有一个std::vector
这样的桶:
class hash_table
{
public:
hash_table(): buckets(100) {} // hash table has 100 buckets
void put(std::string const& key, std::string const& value)
{
// ...
}
// etc...
private:
std::vector<bucket> buckets; // the table
};
于 2017-03-26T04:26:04.890 回答