您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么使用双链表删除哈希表的元素为O(1)?

为什么使用双链表删除哈希表的元素为O(1)?

这里出现的问题是:考虑到您正在查看哈希表的特定元素。删除它的代价是多少?

假设您有一个简单的链表:

v ----> w ----> x ----> y ----> z
                |
            you're here

现在,如果你删除x,你需要连接wy让你列表链接。您需要访问w并告诉它指向y(您想要拥有w ----> y)。但是您不能w从访问,x因为它只是链接!因此,您必须遍历所有列表才能w在O(n)操作中找到,然后告诉它链接y。那很糟。

然后,假设您是双向链接

v <---> w <---> x <---> y <---> z
                |
            you're here

不错,您可以从这里访问w和y,因此可以w <---> y在O(1)操作中连接两个()!

其他 2022/1/1 18:14:33 有646人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶