代码随想录算法训练营第三天 | 熟悉链表

news/2024/11/17 7:17:58/文章来源:https://www.cnblogs.com/VickyWu/p/18438016

链表的存储方式

  • 数组是在内存中是连续分布的,但是链表在内存中可不是连续分布的。
  • 链表是通过指针域的指针链接在内存中各个节点。
  • 所以链表中的节点在内存中不是连续分布的 ,而是散乱分布在内存中的某地址上,分配机制取决于操作系统的内存管理。

链表的定义

template <typename T>
struct LinkNode           //单链表结点类型
{T data;               //存放数据元素LinkNode<T>* next;    //下一个结点的指针LinkNode():next(NULL){}     //构造函数LinkNode(T d):data(d),next(NULL){}   //重载构造函数
};

链表的操作

删除节点

注意:如上图所示,如果直接将C指向E,实际上D节点依然在内存中,所以需要手动释放,
但是其他语言例如python,Java有自己的内存回收机制

添加节点

可以看出链表的增添和删除都是O(1)操作,也不会影响到其他节点。
但是要注意,要是删除第五个节点,需要从头节点查找到第四个节点通过next指针进行删除操作,查找的时间复杂度是O(n)。

链表的好处:

  • 数组在定义的时候,长度就是固定的,如果想改动数组的长度,就需要重新定义一个新的数组。
  • 链表的长度可以是不固定的,并且可以动态增删, 适合数据量不固定,频繁增删,较少查询的场景。

其他语言版本的节点构造:

C++:

class ListNode {val;next = null;constructor(value) {this.val = value;this.next = null;}
}

python:

class ListNode:def __init__(self, val, next=None):self.val = valself.next = next

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

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

相关文章

智慧工地火焰烟火识别检测系统

智慧工地火焰烟火识别检测系统通过深度学习技术,智慧工地火焰烟火识别检测系统对工地工厂区域自动发现浓烟和烟火迹象,立即抓拍告警并进行存档同步违规异常烟火信息回传给后台平台提醒后台人员及时处理。智慧工地火焰烟火识别检测系统可以减少因人工因素造成的乱报和瞒报现象…

车辆逆行识别预警系统

车辆逆行识别预警系统通过Python计算机算法技术,车辆逆行识别预警系统可以7*24小时不间断自动检测监控中道路来往行驶车辆出现逆行行为及时预警存档,同步将车辆违规行为信息回传给后台监控分析平台提醒值班人员及时处理预警。车辆逆行识别预警系统通过Opencv网络模型AI技术有…

信息学奥赛复赛复习06-CSP-J2020-02直播获奖-向上取整、向下取整、整数除法、最大值、最小值、计数排序

PDF文档公众号回复关键字:202409281 2020 CSP-J 题目1 优秀的拆分 [题目描述] NOI2130 即将举行。为了增加观赏性,CCF 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为 w%,即当前排名前 w% 的选手的最低成绩就是即时的分数线 更具体地,若当前已评出…

渣土车智能识别系统

渣土车智能识别系统通过深度学习算法,渣土车智能识别系统对禁止渣土车通行现场画面中含有渣土车时进行自动识别监测,渣土车智能识别系统监测到监控画面中出现渣土车时,立即抓拍告警并同步提醒后台人员及时制止。渣土车智能识别系统促进后台日常“技防”智能化监管替代“人防…

[计算机网络]HTTP请求

HTTP 协议,建立在 TCP 连接基础之上的。HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础,通常由浏览器发起请求,用来获取不同类型的文件,例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议。 HTTP请求发起流程 …

软件工程结对项目

结对项目这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标 结对完成四则运算生成器项目成员伍绍雄 学号 3122004753 陈鸿航 学号 3122004732Github…

河道治理漂浮物识别监测系统

河道治理漂浮物识别监测系统通过深度视觉分析技术,河道治理漂浮物识别监测系统实时检测着河道水面是否存在漂浮物、水浮莲以及生活垃圾等。河道治理漂浮物识别监测系统识别到河道水面存在水藻垃圾等漂浮物,系统立即抓拍存档并同步发出报警。河道治理漂浮物识别监测系统可以提…

AI动作异常行为分析预警系统

AI动作异常行为分析预警系统采用AI神经网络的学习算法,AI动作异常行为分析预警系统实时分析现场人员人体动作操作行为以及着装穿戴情况是否合规进行实时监测,AI动作异常行为分析预警系统通过统计和分析后实现人员违规行为实时监测预警提升现场人员合规操作规范,降低人员违规…

结队项目

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标 实现四则运算程序,掌握结对合作完成项目的技巧项目地址 GitHub地址 PSP表格PSP2.1 Personal Sof…

《Python 基础篇》一:初相识

Python 基础语法,以及运算符。Author: ACatSmiling Since: 2024-09-27基础语法 Python 的语法比较简单,采用缩进方式,写出来的代码就像下面的样子: # print absolute value of an integer: a = 100 if a >= 0:print(a) else:print(-a)Python 程序是大小写敏感的,如果写…

VulnHub-SickOs1.1靶机笔记

SickOs1.1靶机笔记 概述 Vulnhub的靶机sickos1.1 主要练习从互联网上搜索信息的能力,还考察了对代理使用,目录爆破的能力,很不错的靶机 靶机地址: 链接: https://pan.baidu.com/s/1JOTvKbfT-IpcgypcxaCEyQ?pwd=ytad 提取码: ytad 一、nmap扫描 1)主机发现 sudo nmap -sn …

MES开发004

写了流程图和数据字段