当前位置: 首页 > 知识库问答 >
问题:

哈希表插入和删除元素

胡夕
2023-03-14

我试图做一个哈希表与线性探测插入。

表的大小是11,我的散列函数是,h(k)=k mod 11,我想做的是。

插入(15, c)插入(4, a)插入(26, b)删除(15)插入(5, d)插入(4, e)

这是我的解决方案,但它是不对的。

应该是这样的,有人能解释一下为什么吗?

共有2个答案

印劲
2023-03-14

当你插入(15,c)和(4,a)时,我相信你需要创建一个链表来解决冲突,因为它们有相同的键(4)。然后Delete(15)将同时删除a和c。

傅花蜂
2023-03-14

啊,你澄清了你的问题。

答案是正确的。

您的解决方案是不正确的,因为当您执行插入(4, e)时,您没有首先检查该键是否已经存在于哈希表中。如果它确实存在,那么您需要覆盖它。

 类似资料:
  • 下面的代码是正确的,但我不明白为什么两行代码可以工作。我指的是最后一块。具体地说,我指的是这两行: newword->next=hashtable[index]; hashtable[index]=newword; 如果目标是在哈希表的索引处将节点追加到链表,那么为什么newword->next指向哈希表的索引,而该索引处可能已经有节点了。我认为它应该是newword->next=NULL,因为该

  • hdel key field 删除指定的hash field

  • 问题内容: 我要在我的一个项目中对分页进行ajax化,并且由于我希望用户能够为当前页面添加书签,因此我通过哈希附加页面编号,例如: 并且多数民众赞成在它工作正常,一切,除了,当页码为1时,我不想成为,我只是希望它成为 我尝试了以下变体: 的作品,但网址现在就像,我不很哈希那里。 根本不使用window.location.hash,但是当用户从第3页回到第1页时,他位于第1页,但是url仍然是因为我

  • 我想在命令行上这样做,所以像这样的事情会很好: 上面的方法当然不适合散列。所以最后我需要打电话 以自动化的方式。

  • 问题内容: 在如何哈希列表?有人告诉我,我应该转换为一个元组第一,如到。 因此,第一个不能散列,而第二个可以散列。为什么*? *我并不是真正地在寻求详细的技术说明,而是在寻找一种直觉 问题答案: 主要是因为元组是不可变的。承担以下工作: 现在,当您这样做时会发生什么?您已修改字典中的键!远道而来!如果您熟悉哈希算法的工作原理,这会让您感到恐惧。另一方面,元组是绝对不变的。看起来好像是在修改元组,但

  • 我在研究hackerearth上的哈希表,在那里我遇到了用线性探测实现哈希表的代码。我对这段代码有两个疑问:- 1)为什么他们声明大小为21(而不是大小为20)的hashTable最多容纳20个元素? 2) 在Insert函数中,当循环无限运行时,如果在连续迭代之后,索引的值变为索引的初始值,不是吗? 链接至黑客主页:-https://www.hackerearth.com/practice/da