数据结构——链表,哈希表
文章目录
- 链表
- python实现
- 双向链表
- 复杂度分析
- 哈希表(散列表)
- python实现哈希表
- 哈希表的应用
链表
python实现
class Node:def __init__(self, item):self.item = itemself.next = Nonedef head_create_linklist(li):head = Node(li[0])for element in li[1:]:node = Node(element)node.next = headhead = nodereturn headdef tail_create_linklist(li):head = Node(li[0])tail = headfor element in li[1:]:node = Node(element)tail.next = nodetail = nodereturn headdef print_linklist(lk):while lk:print(lk.item, end=',')lk = lk.nextprint()a = head_create_linklist([1, 2, 3, 4, 5, 6, 7, 8])
b = tail_create_linklist([1, 2, 3, 4, 5, 6, 7, 8])
print_linklist(a)
print_linklist(b)
双向链表
复杂度分析
哈希表(散列表)
python实现哈希表
class LinkList:class Node:def __init__(self, item=None):self.item = itemself.next = Noneclass LinkListIterator:def __init__(self, node):self.node = nodedef __next__(self):if self.node:cur_node = self.nodeself.node = cur_node.nextreturn cur_node.itemelse:raise StopIterationdef __iter__(self):return selfdef __init__(self, iterable=None):self.head = Noneself.tail = Noneif iterable:self.extend(iterable)def append(self, obj):s = LinkList.Node(obj)if not self.head:self.head = sself.tail = selse:self.tail.next = sself.tail = sdef extend(self, iterable):for obj in iterable:self.append(obj)def find(self, obj):for n in self:if n == obj:return Trueelse:return Falsedef __iter__(self):return self.LinkListIterator(self.head)def __repr__(self):return "<<" + ", ".join(map(str, self)) + ">>"# 类似于集合的结构
class HashTable:def __init__(self, size=101):self.size = sizeself.T = [LinkList() for i in range(self.size)]def h(self, k):return k % self.sizedef 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)
ht.insert(19)
ht.insert(56)
ht.insert(96)print(",".join(map(str, ht.T)))
print(ht.find(203))
哈希表的应用
若有错误与不足请指出,关注DPT一起进步吧!!!
相关文章:

数据结构——链表,哈希表
文章目录 链表python实现双向链表复杂度分析 哈希表(散列表)python实现哈希表哈希表的应用 链表 python实现 class Node:def __init__(self, item):self.item itemself.next Nonedef head_create_linklist(li):head Node(li[0])for element in li[1…...
如何使用Python对Excel、CSV文件完成数据清洗与预处理?
在数据分析和机器学习项目中,数据清洗与预处理是不可或缺的重要环节。 现实世界中的数据往往是不完整、不一致且含有噪声的,这些问题会严重影响数据分析的质量和机器学习模型的性能。 Python作为一门强大的编程语言,提供了多种库和工具来帮…...

第8篇:网络安全基础
目录 引言 8.1 网络安全的基本概念 8.2 网络威胁与攻击类型 8.3 密码学的基本思想与加密算法 8.4 消息认证与数字签名 8.5 网络安全技术与协议 8.6 总结 第8篇:网络安全基础 引言 在现代信息社会中,计算机网络无处不在,从互联网到局…...
Flutter 中的 PopScope 小部件:全面指南
Flutter 中的 PopScope 小部件:全面指南 在 Flutter 应用开发中,导航和路由管理是构建复杂应用时必须面对的挑战之一。PopScope 小部件是 Flutter 2.0 版本引入的一个新功能,它提供了一种更灵活的方式来控制页面的弹出和返回行为。本文将带你…...
视频剪辑的未来
技术发展推动4: 人工智能与自动化辅助:人工智能在视频剪辑中的应用将不断深化。例如,智能剪辑软件能够自动分析视频素材的内容、情感和节奏,快速生成初步的剪辑版本,剪辑师在此基础上进行进一步的优化和调整࿰…...

通过PHP与API的结合,开启电商数据集成的新篇章
在数字化转型的浪潮中,电子商务数据的集成对于企业来说变得越来越重要。无论是在线零售商还是品牌商,都需要实时访问商品数据以优化库存管理、制定定价策略、提升客户体验。PHP,作为服务端脚本语言的佼佼者,为开发者提供了强大的工…...

使用 CDN 后 Apache 的日志记录客户真实 IP
经常搭建网站服务器的都知道,在给站点使用了 CDN 后 Web 应用的日志记录里就会只记录 CDN 节点 IP 了,这就没法看到真实客户请求 IP,对于日志分析、运维日常维护来说就有点儿麻烦了,今天明月结合在五洛云服务器上搭建的Apache环境…...

ORACLE 19C安装 RAC报错
1. 问题描述 在Oracle 19C RAC的安装过程中,使用克隆方式在两个节点上部署集群。当第一个节点配置好基础服务后,关机并克隆节点。当尝试在第二个节点上通过页面进行RAC安装时,出现以下错误: [INS-32070] Could not remove the n…...

省心英语 3.9.9| 资源最全面的英语学习App
省心英语是一款资源全面的英语学习软件,完全免费且无广告,内含丰富的词库和范文、中小学、四六级、考研、专四专八、雅思托福、新概念等所有阶段的学习内容。软件支持练听力、背单词、阅读理解等功能,覆盖了听说读写全方位学习。听力部分包含…...
ruoyi框架动态切换数据库
需求背景 最近需要一个小demo,项目中需要同时连接sqlserver和mysql数据库。 操作教程 1、pom.xml -- 修改common/pom.xml<!-- 动态数据源 --> <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-star…...

iba Data Export 导出面板选项
时间线选择真实时间“Absolute date / time” 时间间隔选择0.5Sec.(最小为0.01Sec.) 右侧数据根据需要选择...
过滤器Filter的介绍和使用
1.简介 在 Java Web 开发中,Filter 是一个非常重要的组件,用于在请求到达 Servlet 之前或响应返回客户端之前对请求和响应进行预处理或后处理。Filter 可以用来实现多种功能,如日志记录、权限检查、编码转换、请求头修改等。就好比机场的层层…...

JMeter之mqtt-jmeter 插件介绍
前言 mqtt-jmeter插件是JMeter中的一个第三方插件,用于支持MQTT(Message Queuing Telemetry Transport)协议的性能测试。MQTT是一种轻量级的发布/订阅消息传输协议,广泛应用于物联网和传感器网络中。 一、安装插件 mqtt-jmeter项目…...
Nacos2.3.2在ubuntu中的部署
Nacos2.3.2 在ubuntu下的部署 下载地址 发布历史 | Nacos 官网 https://download.nacos.io/nacos-server/nacos-server-2.3.2.zip 修改 application.properties文件 开启鉴权 ### 开启鉴权功能 nacos.core.auth.caching.enabledtrue ### The auth system to use, current…...

Xilinx远程固件升级(一)——QuickBoot方案
Xilinx 7系FPGA远程更新方案——QuickBoot方式远程更新bit 一、远程更新背景和架构 对于非ZYNQ系列的常规FPGA来说,对于bit的更新一般使用JTAG进行烧录。而作为商用产品,想要进行OTA升级时,使用JTAG的升级方式显然不适合,因此&a…...

O(1)调度算法与CFS
目录 引言 linux内核的O(1)进程调度算法介绍 主要特点 工作原理 优点 缺点 运行队列 活动队列 过期队列 active指针和expired指针 O(1)调度器,两个队列的机制 两个队列的机制如下: 这个算法后期被CFS替代 CFS 工作原…...

SpringBoot——静态资源访问的四种方式
1.默认的静态资源目录 /static /public /resources /META-INF/resources 动态资源目录:/templates 2.resources静态资源目录图片存放 3. 静态资源访问 3.1.通过路径访问静态资源 http://localhost:8080/a.jpg http://localhost:8080/b.jpg …...
WPF中的Style如何使用
在 WPF 中,Style 是一个非常重要的概念,它用于定义控件的默认外观和行为。以下是如何使用 Style 的一些基本步骤和示例: 1. 定义 Style 资源 通常在 XAML 的资源部分(ResourceDictionary)中定义样式。 2. 指定 Targ…...

数据分析案例-欺诈性电子商务交易数据集可视化分析
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...

java互联网医院智能导诊系统源码,Uniapp前端开发框架,支持一次编写,多端运行
智慧导诊系统源码,java源码,大屏机自动导诊,互联网医院智能导诊系统源码 老是全身无力,挂什么科? 经常头痛,挂什么科? 总是失眠,又得挂哪个科? 世界上最遥远的距离再加…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...