用python写单链表

目录

  • 链表的数据结构
  • 单链表
    • 操作
      • 头插入
      • 尾插入
      • 中间插入
    • 删除
    • 查找
  • 总结


链表的数据结构

链表是什么呢,来看下

链表,是一种数据结构。相对于数组而言,是不连续的一块内存空间。不仅如此,而且链表有多种,包括:单链表,双向链表,循环链表。这里先说下单链表。


单链表

单链表,由data数据域和next指针组成。简单点,就如下代码:

class Node:def __init__(self, data: int, nextNode: None):self._data = dataself._nextNode = nextNode

操作

先说插入吧,插入分为几种情况,头插入,尾插入,中间任意位置插入。

头插入

代码如下:
在这里插入图片描述

尾插入

这个也比较简单,如下图:
在这里插入图片描述

中间插入

这个就比较复杂了,中间某个Node插入,分为2中情况, 这个位置的前边还是后边呢?接下来看代码,如下图,前边插入:

在这里插入图片描述
还有一种情况是后边插入,如下图:
在这里插入图片描述
插入就结束了。插入简单,但是查找费时。


删除

来看下删除操作吧,删除的操作代码如下:
在这里插入图片描述
时间复杂度:O(n),这个主要浪费在查找上。

查找

代码如下:
在这里插入图片描述
时间复杂度O(n)

总结

总得来说,链表和数组相比,不是连续的内存空间,相对来说也复杂一点。插入操作和删除操作虽然比较效率高,但是时间耗费在查找上。查找的效率是O(n)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/4798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Security OAuth2 统一登录

介绍 Spring Security OAuth2 是一个在 Spring Security 框架基础上构建的 OAuth2 授权服务器和资源服务器的扩展库。它提供了一套功能强大的工具和组件,用于实现 OAuth2 协议中的授权流程、令牌管理和访问控制。 Git地址:yunfeng-boot3-sercurity: Sp…

火力发电厂超低排放标准?

目录: 引言火力发电厂超低排放的背景与意义火力发电厂超低排放环保指标解析环保验收要求超低排放的重要性环保验收的流程与要点超低排放技术措施与应用火力发电厂超低排放的监测与评估环保验收中常见问题及解决方案案例分析:成功实现超低排放的火力发电…

uniapp分包,以及通过uni-simple-router进行分包

先说一下uniapp的直接分包方式,很简单: 配置分包信息 打开manifest.json源码视图,添加 “optimization”:{“subPackages”:true} 开启分包优化 我们在根目录下创建一个pagesA文件夹,用来放置需要分包的页面 然后配置路由 运行到…

Unity3d 学习之按钮绑定事件

创建测试脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class myTest : MonoBehaviour {// Start is called before the first frame updatepublic Button _codeBindBtn null;void Start(){if (_codeBi…

020Node.js的FS模块使用fs.mkdir创建目录

Node.js的FS模块使用fs.mkdir创建目录 //fs.mkdir 创建目录 /*path 将创建的目录路径mode 目录权限(读写权限),默认777callback 回调,传递异常参数err*/ const fsrequire(fs);fs.mkdir(./css,(err)>{if(err){console.log(err)…

03.Kafka 基本使用

Kafka 提供了一系列脚本用于命令行来操作 kafka。 1 Topic 操作 1.1 创建 Topic 创建一个名为 oldersix-topic 的 topic,副本数设置为3,分区数设置为2: bin/kafka-topics.sh \ --create \ --zookeeper 192.168.31.162:2181 \ --replication…

深度学习之基于多模态融合的商品分类方法研究与实现

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介:深度学习之基于多模态融合的商品分类方法研究与实现 一、项目背景与目标 随着电子商务的快速…

Polyscope,一款简洁的三维可视化工具!

Polyscope是用于三维数据(如meshes、point clouds)的可视化工具,通过编程或动态GUI完成;支持C和Python编程;追求“一行代码”为数据提供有用的可视界面展示。 下面来简单介绍Polyscope使用。 Polyscope效果 Point Cl…

【深度学习】【Lora训练1】StabelDiffusion,Lora训练过程,秋叶包,Linux,SDXL Lora训练

文章目录 一、环境搭建指南二、个性化安装流程三、启动应用四、打开web五、开始训练 19.27服务器 一、环境搭建指南 打造一个高效且友好的开发环境: 项目源码获取: 通过以下命令轻松克隆项目及所有子模块至您的Linux系统: git clone --recu…

主观赋权法、客观赋权法、组合赋权法、评价指标体系构建

在科研领域,为了对某个研究主题进行深入的探讨和评估,我们往往需要构建一套科学合理的评价体系,并为其中的各项评价指标赋予相应的权重。比如,在评价一项新技术的性能时,我们可能会考虑其创新性、实用性、成本效益等多…

牛客NC242 单词搜索【中等 递归DFS C++/Java/Go/PHP】

题目 题目链接: https://www.nowcoder.com/practice/987f2981769048abaf6180ed63266bb2 思路 递归:以word第一个字符为起点,在矩阵中 递归搜索,检查是否存在完整的word路径, 注意恢复现场,又叫回溯&#…

【LAMMPS学习】八、基础知识(5.1)有限尺寸球形和非球形粒子

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

Gin的中间件执行流程与用法

一、背景 我们在使用Gin框架进行Web开发的时候,基本上都会遇到登录拦截的场景。 例如某些接口必须在登录以后才能访问,根据登录用户的信息以及权限,拿到属于自己的数据, 反之,没登录过则直接拒绝访问。 那么我们怎么做到这些登录…

Agent AI 智能体的未来

Agent AI智能体的未来可能会变得更加普遍和智能。以下是一些可能出现的趋势和发展方向: 1、个性化服务: Agent AI智能体可能会变得更加个性化,能够根据用户的偏好和习惯提供定制化的服务和建议。 2、多模态交互: 未来的Agent AI可能会支持更多的多模态交…

【麒麟(Linux)系统远程连接到windows系统并进行文件传输】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言使用步骤总结 前言 一般来说,windows自带远程桌面,使用的RDP协议,Linux上支持RDP协议的软件很多,常用的是Remmi…

陪丨玩丨系丨统搭建制作流程APP小程序H5多端源码前后端一次性交付,本地授权,无二次费用!可定制开发!

陪丨玩app小程序H5开发,软件搭建,程序制作、系统设计 数据存储是陪玩平台源码的重点,没有数据库,用户的账号信息、平台产生的数据都无法顺利存储和读取,不能让用户拥有完善良好的用户体验。虽然是存放在服务器上&…

ThreeJs 环境配置及遇到问题的解决方法

一、环境搭建 ThreeJs在实际在实际使用中更多的是结合框架开发例如:vue框架、react框架,在使用时需要配置开发环境,本文使用的是vscode ThreeJs NodeJs vue 1、ThreeJs安装 下载路径:GitHub - mrdoob/three.js: JavaScript…

jbutton 按钮 圆角 渐变色

效果图 没按压时背景渐变色 鼠标按压时背景色改变 下面是可用的源码 package com.beijin.robot.utils; import javax.swing.*; import javax.swing.border.Border; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;public clas…

IDEA使用技巧(常用设置、快捷键等)

IDEA使用技巧 一、IDEA常用基本设置设置代码背景颜色/主题/字体Ctrl鼠标滚轮缩放字体大小设置字符编码左右两侧的Project,Structure,Maven等按钮消失新增类似sout,psvm的模版切换某个模块编译的JDK版本 二、常用快捷键CtrlAltT包裹代码Alt回车联想补全Ct…

Kafka(十二)Streams

目录 Streams1 什么式是流式处理2 流式处理的相关概念2.1 拓扑2.2 时间2.2.1 输入时间2.2.2 输出时间 2.3 状态2.4 流和表2.5 时间窗口2.5.1 测试时间窗口 2.6 处理保证 3 流式处理设计模式3.1 单事件处理3.2 使用本地状态3.3 多阶段处理和重分区3.4 使用外部查找:流…