news 2026/4/18 11:17:10

【数据结构】单链表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【数据结构】单链表

目录

引言

什么是单链表

基本概念

核心特点:

单链表图解

单链表的实现

1.手动创建链表

测试结果

2.单链表结构

链表打印

创建新结点

尾插 时间复杂度O(N)

尾插测试

头插 时间复杂度O(1)

头插测试

尾删 时间复杂度O(N)

尾删测试

头删 时间复杂度O(1)

头删测试

查找 时间复杂度O(N)

查找测试

​编辑

在指定位置之前插入数据 时间复杂度O(N)

测试​编辑

在指定位置后插入代码 时间复杂度O(1)

测试

删除pos结点 时间复杂度O(N)

测试

删除pos结点 时间复杂度O(1)

销毁链表 时间复杂度O(N)


代码放在下面链接啦,希望能对你有帮助~

戊苯菌/数据结构https://gitee.com/jiang-bos-blog-post/data-structure

引言

单链表是数据结构中的基础与经典,它以节点为单位,在非连续的内存空间中通过指针串联数据,形成逻辑上的线性序列。相比数组的静态连续存储,单链表天生具有动态扩展的能力,插入与删除节点只需调整指针,避免了大规模数据搬移的开销,尤其适合频繁变动的场景。然而,灵活性的代价是失去了随机访问的便捷,每一次查找都可能需要从头遍历。这种在时间与空间、顺序与链式之间的取舍,正是理解链表价值的关键所在。

什么是单链表

基本概念

单链表是一种线性数据结构,它通过指针将一组非连续的内存空间(节点)按特定顺序连接起来。

核心特点:

  1. 动态结构:内存空间按需分配,不需要预先确定大小

  2. 非连续存储:节点在内存中可以分散存储

  3. 单向链接:每个节点只能找到它的后继节点,不能直接找到前驱节点

单链表图解

通过上图,我们也不难看出,单链表实际上就是很多个结点结构如同火车车厢般链接(每个结点的指针都指向下一个结点,最后一个结点指向NULL)

单链表的实现

1.手动创建链表

测试结果

2.单链表结构

就像我们概念部分所介绍,单链表实际上包含存储数据部分和链接下一节点的指针,内容如上

链表打印

创建新结点

尾插 时间复杂度O(N)

尾插测试

头插 时间复杂度O(1)

头插测试

尾删 时间复杂度O(N)

尾删测试

头删 时间复杂度O(1)

头删测试

查找 时间复杂度O(N)

查找测试

在指定位置之前插入数据 时间复杂度O(N)

测试

在指定位置后插入代码 时间复杂度O(1)

测试

删除pos结点 时间复杂度O(N)

测试

删除pos结点 时间复杂度O(1)

测试

销毁链表 时间复杂度O(N)

推荐对头部进行改变(头插,头删等时间复杂度低)

感谢您看到这里,不知是否可以为博主留下一个点赞或评论呢?这对博主很有用,同时有问题或争论可以在评论区提出~感谢支持~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:24:55

Obsidian Ink 插件终极指南:5分钟掌握手写笔记革命性功能

Obsidian Ink 插件终极指南:5分钟掌握手写笔记革命性功能 【免费下载链接】obsidian_ink 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian_ink 快速入门体验:从零开始的手写笔记之旅 Obsidian Ink 是一款专为 Obsidian 笔记软件设计的革…

作者头像 李华
网站建设 2026/4/17 6:59:30

Java学习日记——DAY7

今天学习了与Java异常处理相关的知识,汇总如下:1.用try{}catch(){}finally{}的语法来处理异常,try里面还可以嵌套try和catch;2.try{}后面可搭配多个catch来处理不同的异常,同时可通过catch&…

作者头像 李华
网站建设 2026/4/18 3:25:52

基于Java的springboot/SSM+vue.js+uniapp小程序的非遗茶百戏科普小程序附带文章源码部署视频讲解等

文章目录前言详细视频演示具体实现截图核心技术介绍后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言 🌞博主介绍:✌CSDN特邀作者、资深全栈开发程序员,曾在互联网大厂担任高级职位、…

作者头像 李华
网站建设 2026/4/18 3:28:14

UE5 材质-21:

(91)这篇开始,跟着 B 站,游启明老师,再学一遍材质 黑白图, UE 里黑色是 0,白色是 1 : 启动引用查看器 : 让材质多使用引擎里的公共资源,易于迁移文件&…

作者头像 李华
网站建设 2026/4/17 3:40:02

Flutter 全场景开发实战宝典:组件化架构、性能优化与跨端适配深度解析

引言在移动应用开发领域,“多端一致体验”与“高效开发迭代”始终是开发者追求的核心目标。Flutter 作为 Google 推出的跨端开发框架,凭借“自绘 UI 引擎、单一代码库多端部署、原生级性能”三大核心优势,彻底打破了传统跨端方案“体验打折、…

作者头像 李华
网站建设 2026/4/17 4:18:09

Wan2.2-T2V-A14B与Sora的技术路线差异分析

Wan2.2-T2V-A14B与Sora的技术路线差异分析你有没有想过,一条8秒的广告视频,从脚本到成片,只需要不到两分钟?这不再是科幻。在AI生成内容(AIGC)狂飙突进的今天,文本到视频(T2V&#x…

作者头像 李华