当前位置: 首页 > news >正文

python实现链表

什么是链表

链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点的指针next。通过节点之间的相互连接最终串联成一个链表。

python实现一个简单链表

我们可以用python实现一个超级简单的链表

class node:# 初始化数据def __init__(self, item):self.item = itemself.next = None
# 一个一个构造链表元素
a = node(1)
b = node(2)
c = node(3)a.next = b
b.next = c# 打印我们的节点
print(a.next.next.item)

如上,我们是一个一个的去创建,那么,我们如何通过python去实现整体的链表创建呢?

python实现链表创建

这里有两种方法可以实现,一种是头插法,一种是尾插法;
在这里插入图片描述
这里我们先使用python实现头插法


class Node:# 初始化数据def __init__(self, item):self.item = itemself.next = None
# 一个一个构造链表元素
# a = node(1)
# b = node(2)
# c = node(3)
#
# a.next = b
# b.next = c# 打印我们的节点
# print(a.next.next.item)def create_linklist_head(li):# 头部指向第一个元素head = Node(li[0])# 接下来,循环创建这个元素for element in li[1:]:# 创建节点node = Node(element)# 节点的下一个是头部位置node.next = head# 头部位置就是加进来的节点的位置head = nodereturn headdef print_linklist(lk):while lk:print(lk.item, end=',')lk = lk.nextlk = create_linklist_head([1, 2, 3, 4, 5])
print_linklist(lk)

我们创建了实例,运行结果是:
在这里插入图片描述
接下俩我们实现尾插法:

def create_linklist_head(li):# 头部指向第一个元素head = Node(li[0])# 接下来,循环创建这个元素for element in li[1:]:# 创建节点node = Node(element)# 节点的下一个是头部位置node.next = head# 头部位置就是加进来的节点的位置head = nodereturn headdef create_linklist_tail(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.next# lk = create_linklist_head([1, 2, 3, 4, 5])
# print_linklist(lk)
lk = create_linklist_tail([1, 2, 3, 4, 5])
print_linklist(lk)

运行之后,我们发现,我们用尾插法实现了一个链表的输出
在这里插入图片描述

相关文章:

python实现链表

什么是链表 链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点的指针next。通过节点之间的相互连接最终串联成一个链表。 python实现一个简单链表 我们可以用python实现一个超级简单的链表 class node:# 初始化数据def __init_…...

Linux Shell 编程基础入门(一)

😀前言 本篇博文是关于自动化工具Shell 编程的基本介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动…...

大白话讲微服务的灾难性雪崩效应

讲在前面,为什么微服务需要有熔断等策略呢?今天我们用大白话来讲讲微服务的灾难性雪崩效应,熔断策略就是解决雪崩效应的有效解决方案。 什么是灾难性雪崩效应? 假设我们有两个访问量比较大的服务A和B,这两个服务分别依…...

配置 K3s 访问私有镜像仓库

1.修改 K3s 配置文件 1)对于较新的 K3s 版本,你可以通过编辑 K3s 的配置文件来指定镜像仓库。编辑 /etc/rancher/k3s/config.yaml 文件(如果不存在则需要创建),添加或修改以下配置: # /etc/rancher/k3s/config.yaml …...

数学建模之数据分析【七】:对Pandas DataFrame 进行切片

文章目录 一、切片简介二、创建Pandas数据框三、使用iloc进行切片3.1 对行进行切片3.2 对列进行切片3.3 Dataframe选中特定单元格 四、使用loc创建切片4.1 使用Python对Dataframe中的行进行切片4.2 指定单元格 五、在Python中使用布尔条件六、结论 对 Pandas DataFrames 进行切…...

删除 Docker 容器的日志文件

删除 Docker 容器的日志文件可以帮助释放磁盘空间。以下是步骤: 1、查找日志文件路径: Docker 容器的日志通常存储在 /var/lib/docker/containers/<container_id>/ 目录下。日志文件通常名为 container_id-json.log。 通过以下命令找到日志文件的位置: docker ins…...

DevOps入门(上)

1: DevOps概念 &#xfeff;&#xfeff;DevOps: Development 和 Operations 的组合 DevOps 看作开发&#xff08;软件工程&#xff09;、技术运营和质量保障&#xff08;QA&#xff09;三者的交集。 突出重视软件开发人员和运维人员的沟通合作&#xff0c;通过自动化流程来使…...

基于Python的网易民谣歌词数据分析的设计与实现

基于Python的网易民谣歌词数据分析的设计与实现 Design and Implementation of Data Analysis for NetEase Folk Song Lyrics Based on Python 完整下载链接:基于Python的网易民谣歌词数据分析的设计与实现 文章目录 基于Python的网易民谣歌词数据分析的设计与实现摘要第一章…...

趋动科技联合云轴科技推出GPU云原生超融合解决方案

近日&#xff0c;趋动科技VirtAITech携手云轴科技ZStack推出GPU云原生超融合联合解决方案&#xff0c;提供全面、可扩展的云原生GPU存算一体化解决方案。 该方案基于云原生超融合及GPU资源池化技术&#xff0c;使得GPU资源管理变得更加简便易用&#xff0c;能够帮助企业用户在…...

Dooring智图,一款开箱即用的图片海报编辑器

嗨, 大家好, 我是徐小夕. 之前一直在社区分享零代码&低代码的技术实践&#xff0c;也陆陆续续设计并开发了多款可视化搭建产品&#xff0c;比如&#xff1a; Nocode/Doc&#xff0c;可视化 零代码打造下一代文件编辑器爆肝1000小时, Dooring零代码搭建平台3.5正式上线可视化…...

苹果macbook电脑怎么玩《黑神话:悟空》游戏教程来了

火爆全网《黑神话&#xff1a;悟空》是一款基于中国神话故事《西游记》改编的动作角色扮演游戏&#xff0c;它在PC平台上的系统要求已经公布&#xff0c;但目前官方尚未发布Mac版本。不过&#xff0c;Mac用户可以通过使用系统兼容工具如CrossOver来尝试在Mac上运行这款游戏。Cr…...

git 目录提交代码

初始化 Git 仓库&#xff08;如果尚未初始化&#xff09;&#xff1a; 如果还没有初始化 Git 仓库&#xff0c;运行以下命令&#xff1a; git init将远程仓库添加到目录 b 中&#xff1a; 如果尚未关联远程仓库&#xff0c;添加远程仓库&#xff1a; git remote add origin <…...

多商户商品下单限购问题修复

问题: 当商品设置限购为 1 时,够买数量未超过限购,但是还是提示超出限购数量 修复方法: 修改代码路径: app\common\repositories\store\order\StoreOrderCreateRepository.php 修改代码一: i s p a y s a r r a y u n i q u e ( a r r a y c o l u m n ( is_pays array_un…...

eNSP 华为ACL配置

华为ACL配置 需求&#xff1a; 公司保证财务部数据安全&#xff0c;禁止研发部门和互联网访问财务服务器&#xff0c;但总裁办不受影响 R1&#xff1a; <Huawei>sys [Huawei]sys Router1 [Router1]undo info-center enable [Router1]int g1/0/0 [Router1-GigabitEth…...

实现高效研发运营一体化:深度落地DevOps解决方案的探索与实践

前言与概述 伴随着企业业务的快速发展&#xff0c;为了支撑业务发展&#xff0c;提高 IT 对业务的支撑能力建设。在研发工程协同方面&#xff0c;希望加强代码管理&#xff0c;实现持续构建、自动化测试、自动化部署、自动化运维&#xff0c;同时加强产品的安全和质量管理&…...

Milvus向量数据库-磁盘索引简介

以下内容是自己在学习Milvus向量数据库时&#xff0c;在Milvus官方网站文档库中对索引的学习整理和翻译&#xff0c;通过自己和借助翻译软件进行了理解整合翻译&#xff0c;有可能有一些地方理解整理的不到位&#xff0c;还望大家理解。 一、磁盘索引 本文介绍了一种名为Disk…...

Web漏洞介绍和Sql注入漏洞

常规渗透测试流程 漏洞探测包括&#xff1a;web漏洞测试&#xff0c;系统漏洞测试 工具探测、手工验证 优先找的漏洞&#xff1a;中间&#xff08;件&#xff09;漏洞、框架漏洞...webserver 知道创宇 Seebug 漏洞平台 - 洞悉漏洞&#xff0c;让你掌握前沿漏洞情报&#xff…...

【Eureka】Eureka 介绍与实战

1. Eureka 简介 Eureka 是 Netflix 开发的一个服务注册和发现组件&#xff0c;主要用于微服务架构中。它的核心功能是帮助微服务之间进行通讯和管理&#xff0c;使得服务能够动态地发现彼此&#xff0c;实现灵活的服务调用和负载均衡。 1.1 核心概念 服务注册中心&#xff0…...

密码管理系统的自动化与集成:重塑安全与效率的双重飞跃

在数字化时代&#xff0c;密码作为保护个人信息、企业资产及敏感数据的第一道防线&#xff0c;其重要性不言而喻。然而&#xff0c;随着网络应用的激增和复杂性的提升&#xff0c;传统的密码管理方式——如使用简单密码、重复密码或依赖记忆——已难以满足现代安全需求&#xf…...

Outlook如何精确搜索邮件?

Outlook如何精确搜索邮件&#xff1f; 参考链接&#xff1a;https://jingyan.baidu.com/article/e75aca853148ba552edac6b6.html 我们在使用Outlook搜索功能时&#xff0c;直接输入关键词的话&#xff0c;会出来很多不相关的内容&#xff0c;那么有没有办法让搜索时更加精确呢…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...