首页 > 编程语言 >哈希表(实现 Python 中的集合 set)

哈希表(实现 Python 中的集合 set)

时间:2023-08-17 22:56:14浏览次数:47  
标签:__ node set return Python self ht 哈希 def

博客地址:https://www.cnblogs.com/zylyehuo/

# -*- coding: utf-8 -*-


class LinkList:
    class Node:
        def __init__(self, item=None):
            self.item = item
            self.next = None

    class LinkListIterator:
        def __init__(self, node):
            self.node = node

        def __next__(self):
            if self.node:
                cur_node = self.node
                self.node = cur_node.next
                return cur_node.item
            else:
                raise StopIteration

        def __iter__(self):
            return self

    def __init__(self, iterable=None):
        self.head = None
        self.tail = None
        if iterable:
            self.extend(iterable)

    def append(self, obj):
        s = LinkList.Node(obj)
        if not self.head:
            self.head = s
            self.tail = s
        else:
            self.tail.next = s
            self.tail = s

    def extend(self, iterable):
        for obj in iterable:
            self.append(obj)

    def find(self, obj):
        for n in self:
            if n == obj:
                return True
        else:
            return False

    def __iter__(self):
        return self.LinkListIterator(self.head)

    def __repr__(self):
        return "<<" + ", ".join(map(str, self)) + ">>"


# 类似于集合的结构
class HashTable:
    def __init__(self, size=101):
        self.size = size
        self.T = [LinkList() for _ in range(self.size)]

    def h(self, k):
        return k % self.size

    def insert(self, k):
        i = self.h(k)
        if self.find(k):
            print("Duplicated Insert.")
        else:
            self.T[i].append(k)

    def find(self, k):
        i = self.h(k)
        return self.T[i].find(k)


ht = HashTable()

ht.insert(0)
ht.insert(1)
ht.insert(3)
ht.insert(102)
ht.insert(508)

print(",".join(map(str, ht.T)))
print(ht.find(203))
print(ht.find(3))

标签:__,node,set,return,Python,self,ht,哈希,def
From: https://www.cnblogs.com/zylyehuo/p/17639123.html

相关文章

  • python rasa聊天机器人教程五:经典事例查询天气
    从用户输入的消息中提取城市信息然后查询天气信息1.培训数据在data/nlu.yml文件中,添加意图和实体的例子:nlu:-intent:ask_weatherexamples:|-今天[北京](city)的天气怎么样?-[上海](city)明天会下雨吗?-告诉我[广州](city)的天气-[深圳](cit......
  • 用 python 生成九九表
    用python生成九九表━━━━━━━━━━━━━━━━━━━━━━当然可以!以下是使用Python生成九九乘法表的代码:foriinrange(1,10):forjinrange(1,i+1):print(f'{j}×{i}={i*j}',end='\t')print()━━━━━━━━━━━━━━━━━......
  • Python版本切换及代理问题
    版本切换py-版本利用环境变量下寻找变量名的方式更改文件名,从而实现打开不同版本的程序python27python37环境变量变量名描述PYTHONPATHPYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。PYTHONSTARTUPPython启动后,先寻找PYTHONSTAR......
  • Could not find a generator for route RouteSettings("search", null) in the _Widge
    遇到这个错误消息意味着在您的Flutter应用程序中没有为名为"search"的路由定义路由生成器。要解决此问题,您需要定义一个路由生成器来处理名为"search"的路由。以下是如何在Flutter应用程序中定义路由生成器的示例:首先,定义一个路由生成器函数,该函数接受 RouteSettings 对象并返回......
  • python 中如何快速查看代码的性能 DebugInfo 秒表装饰器
    背景我们在python编程时,在有性能优化需求的场景下,我们可能一个需求存在多个解决方案的情况,这些解决方案可能在不同的模块/库中实现。那么对于可以实现两样的功能,但实现方式不同的情况下,我们直接测试一下每个方式的运行性能,是最直观评估不同的实现方案性能的办法。一般解决方法......
  • linux利用软链接快速切换python环境
    首先下载python环境编译安装这里就不在追叙目前的python环境一般python都会出现再/usr/bin/这里都是软连接 指向对应执行文件 然后来到我们下载的python环境下找到python执行环境 然后将这文件连接到 /usr/bin/ 下ln-s源地址目的地址ln-s/www/server/p......
  • 2023年第 16期《Python接口自动化+Playwright 》课程,9月10号开学(课程全面升级!)!
    2023年第16期《Python接口自动化+Playwright》课程课程,9月10号开学(课程全面升级!)主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:2023年9月10号-2023年12月3号,晚上20:30-22:30报名费:报名费3000一人(周期3个月)联系微信/QQ:283340479课表如下直播课程主......
  • python3-输入输出,File, OS, 错误和异常
     1. 输入输出,1.1输出 表达式语句print()函数。第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout引用。 输出格式美化如果你希望输出的形式更加多样,可以使用str.format()函数来格式化输出值。如果你希望将输出的值转成字符串,可以使用......
  • 软件测试|Linux下Python安装配置指南
    在Linux中安装Python是一个简单而且重要的过程,因为Python是一种广泛使用的编程语言,许多系统工具和应用都依赖于它。在本文中,我将详细介绍如何在Linux系统中安装Python。请注意,在本文中,我将以Centos为例,但是这些步骤大多数也适用于其他基于RedHat的发行版。对于其他发行版,请使用相应......
  • Python小项目:通过商品条形码查询商品信息
    完整项目下载:下载链接1商品条形码平日大家会购买许许多多的商品,无论是饮料、食品、药品、日用品等在商品的包装上都会有条形码。商品条形码包括零售商品、非零售商品、物流单元、位置的代码和条码标识。我国采用国际通用的商品代码及条码标识体系,推广应用商品条形码,建立我国......