python链表法的优缺点是什么

这篇文章主要讲解了“python链表法的优缺点是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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()

感谢各位的阅读,以上就是“python链表法的优缺点是什么”的内容了,经过本文的学习后,相信大家对python链表法的优缺点是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网站标题:python链表法的优缺点是什么
URL地址:http://scyanting.com/article/ppgdhi.html