当前位置:首页 » 编程语言 » 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的对象。
代码如下:

热点内容
win7缩略图缓存 发布:2025-03-20 11:31:30 浏览:68
c2c是什么文件夹 发布:2025-03-20 11:30:45 浏览:687
交管12123的登录密码哪里找 发布:2025-03-20 11:25:50 浏览:379
编程技术大牛 发布:2025-03-20 11:21:21 浏览:588
315算法 发布:2025-03-20 11:15:35 浏览:213
内塔尼亚胡访问沙特 发布:2025-03-20 11:08:43 浏览:623
Android传输视频 发布:2025-03-20 11:06:34 浏览:151
java软件免费下载 发布:2025-03-20 10:26:01 浏览:706
安卓用什么编译 发布:2025-03-20 10:25:57 浏览:809
ftp中文软件下载 发布:2025-03-20 10:07:47 浏览:508