导语:
本文主要介绍了关于python链表法的优缺点的相关知识,包括与单链表相比双链表的优点,以及chatgpt python这些编程知识,希望对大家有参考作用。
1.优点,删除记录方便,直接处理数组下标对应的子数组。平均搜索速度很快。如果有冲突,只需要查询子数组。
2.缺点:使用指针导致查询速度慢,内存占用高,不适合序列化。
开放寻址方式的优缺点与链表方式相反。因为Python中的一切都是基于Dict的,需要序列化,所以选择了开放寻址的方式。
实例
# keys函数
#!/usr/bin/env python
# coding=utf-8
class Dict:
def __init__(self, num):
self.__solts__ = []
self.num = num
for _ in range(num):
self.__solts__.append([])
def hash_fun(self,key,num):
hashval = 0
x = key
if x < 0:
print "the key is low"
return
while x != 0:
hashval = (hashval << 3) + x%10
x /=10
return hashval % num
def put(self, key, value):
i = self.hash_fun(key,self.num) % self.num
for p, (k, v) in enumerate(self.__solts__[i]):
if k == key:
break
else:
self.__solts__[i].append((key, value))
return
self.__solts__[i][p] = (key, value)
def get(self, key):
i = self.hash_fun(key,self.num) % self.num
for k, v in self.__solts__[i]:
if k == key:
return v
raise KeyError(key)
# keys函数
def keys(self):
ret = []
for solt in self.__solts__:
for k, _ in solt:
ret.append(k)
return ret
def __getitem__(self,key):
return self.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"
print H.get(54)
H.put(13,"duck")
print H.__solts__
print H.keys()
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 什么是 Python pop11/23
- ♥ python标识符是什么意思?09/08
- ♥ python如何过滤列表中的唯一值09/19
- ♥ python中try-except-finally语句的使用11/09
- ♥ PyMySQL在python中有什么用10/22
- ♥ python __init__()的使用注意事项12/30
内容反馈