当前位置: 首页 > 图灵资讯 > 行业资讯> python链表法的优缺点

python链表法的优缺点

来源:图灵python
时间: 2024-06-26 21:37:49

1、优点是删除记录方便,直接处理数组对应的子数组。平均搜索速度快。如有冲突,只需查询子数组即可。

2、缺点是使用指针导致查询速度慢,内存占用率高,不适合序列化。

开放式寻址法的优缺点与链表法相反。由于Python的一切都是基于Dict的,需要序列化,因此选择了开放式寻址法。

实例

#keys函数
#!/usr/bin/envpython
#coding=utf-8

classDict:
def__init__(self,num):
self.__solts__=[]
self.num=num
for_inrange(num):
self.__solts__.append([])
defhash_fun(self,key,num):
hashval=0
x=key
ifx<0:
print"thekeyislow"
return
whilex!=0:
hashval=(hashval<<3)+x%10
x/=10
returnhashval%num
defput(self,key,value):
i=self.hash_fun(key,self.num)%self.num
forp,(k,v)inenumerate(self.__solts__[i]):
ifk==key:
break
else:
self.__solts__[i].append((key,value))
return
self.__solts__[i][p]=(key,value)
defget(self,key):
i=self.hash_fun(key,self.num)%self.num
fork,vinself.__solts__[i]:
ifk==key:
returnv
raiseKeyError(key)
#keys函数
defkeys(self):
ret=[]
forsoltinself.__solts__:
fork,_insolt:
ret.append(k)
returnret
def__getitem__(self,key):
returnself.get(key)

def__setitem__(self,key,data):
self.put(key,data)
H=Dict(13)
H[54]="cat"
H[26]="dog"
H[93]="lion"
H[17]="tiger"
H[77]="bird"
H[31]="cow"
H[44]="goat"
H[55]="pig"
H[20]="chicken"
printH.get(54)
H.put(13,"duck")
printH.__solts__
printH.keys()

以上是python链表法的优缺点,希望对大家有所帮助。更多Python学习指南:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。