当前位置:首页 » 编程语言 » Python数据结构与算法教程

Python数据结构与算法教程

发布时间: 2025-03-19 10:05:25

python数据结构与算法-哈希map的实现及原理

1-collections.MutableMapping

1.1 概念:这是什么?

大家可能想知道这一串英文是什么意思?其实只需要了解在collections库当中有一个非常重要的抽象基类MutableMappin

g,专门用于实现map的一个非常有价值的工具。后边我们会用到它。

2-我们的map基类


2.1 实现这个类

这个基类其实也就是确定了键值对的属性,并且存储了基本的比较方法。它的对象就是一个键值对咯。这个很好理解。有点类似object的感觉。

3-通过map基类实现的无序映射

给大家看一个上边的例子,这个例子来源于网络,自己改了改,能用,更加详细而已,凑合看.

4-Python哈希表的实现的基类

4.1 咱有话直说:上才(代)艺(码)

如果还不知道哈希表概念的同xio,请参考 python进阶之数据结构与算法–中级-哈希表(小白piao分享) 。废话不多说,咱们撸代码:

OK了,基本的哈希表就实现了,其实仔细想想很容易,但是自己要能实现还是要理解哈希表的本质哦,外加一定量的练习才可以熟练掌握,练习的目的就是为了熟练而已。

5-分离链表实现的具体哈希map类

说明:这玩意只是一种降低冲突的手段,上一节提过,降低冲突最好的地方是发生在元组进入桶的时候,所以想必大家猜到了,接下来的分离链表也就是为了self._bucket_xxxxxxx系列方法做准备。这里之所以在上边使用@abstractmethod就是为了继承实现,目的可以实现多种将冲突的哈希表。分离链表的概念上一节也有的。
“见码入面”(借鉴:见字如面这个电视节目,有兴趣可以看看,还不错的):

6-用线性探测处理冲突的哈希map类

这种方式的好处不需要再去借助其他额外的赋值结构来表示桶。结构更加简单。不会再像上一种方法还要让桶是一个UnsortedTableMap的对象。
代码如下:

热点内容
如何编译内核模块 发布:2025-09-24 01:14:47 浏览:753
王者荣耀官方服务器地址 发布:2025-09-24 00:47:29 浏览:191
gif在线压缩免费 发布:2025-09-24 00:41:13 浏览:946
tcl脚本if 发布:2025-09-24 00:26:59 浏览:706
苹果手机怎么连个人安卓手机热点 发布:2025-09-24 00:20:46 浏览:133
虚拟专用账号密码在哪里注册 发布:2025-09-23 23:57:20 浏览:180
如何修改魔宝显示屏密码 发布:2025-09-23 23:46:54 浏览:409
服务器网卡双ip地址 发布:2025-09-23 23:41:57 浏览:177
为什么电脑吃鸡连接不上服务器 发布:2025-09-23 23:27:18 浏览:686
吉利帝豪舒适版都有哪些配置 发布:2025-09-23 23:18:57 浏览:312