当前位置:首页 » 编程语言 » 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-04-30 23:50:29 浏览:90
xp共享怎么设置密码 发布:2025-04-30 23:50:24 浏览:155
租用电脑主机搭建服务器 发布:2025-04-30 23:28:06 浏览:729
php子类调用父类方法 发布:2025-04-30 23:11:55 浏览:673
存档加密id 发布:2025-04-30 22:20:50 浏览:741
mac搭建php环境 发布:2025-04-30 21:58:13 浏览:135
雅迪电动车配置有哪些 发布:2025-04-30 21:38:27 浏览:154
为什么用文件存储取代mysql 发布:2025-04-30 21:17:26 浏览:609
我的世界免费服务器ip 发布:2025-04-30 20:41:26 浏览:772
华为云相册在哪里找安卓11 发布:2025-04-30 20:19:59 浏览:272