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

【简单介绍下链表基础知识】

在这里插入图片描述

🎥博主:程序员不想YY啊
💫CSDN优质创作者,CSDN实力新星,CSDN博客专家
🤗点赞🎈收藏⭐再看💫养成习惯
✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

在这里插入图片描述

🚀链表基础

🚀链表(Linked List)是数据结构中的一个基本概念,它是数据元素的线性集合,但与数组不同,链表中的元素在内存中不必是连续存放的,每个结点(链表中的元素)通常包含两个部分:数据域和指针域。数据域存储数据元素的信息,而指针域存储指向下一个结点的引用(通常是内存地址)。链表通过指针将零散的内存块串连起来使用。

🚀链表基础包括以下几个方面:

  1. 🚀结点(Node): 是链表中的基本单位,每个结点通常包括:

    • 🚀数据域(Data Field): 存储数据信息。
    • 🚀指针域(Pointer Field)链接(Link): 存储指向下一个结点的指针。
  2. 🚀单链表(Singly Linked List):

    • 🚀由一系列结点组成,每个结点指向下一个结点,形成单向链条。
    • 🚀最后一个结点的指针指向一个null值,表示链表的结束。
  3. 🚀双向链表(Doubly Linked List):

    • 🚀每个结点有两个指针,分别指向前一个结点和后一个结点。
    • 🚀可以从两个方向遍历整个链表。
  4. 🚀循环链表(Circular Linked List):

    • 🚀类似于单链表,但是最后一个结点指向头结点,形成闭环。

🚀链表的基本操作包括:

  • 🚀插入(Insertion): 在链表中插入一个新结点。可以在链表的起始处、中间某个位置或末尾添加元素。
  • 🚀删除(Deletion): 从链表中删除一个结点。需要维护前一个结点的指针,使其指向被删除结点的下一个结点。
  • 🚀搜索(Search): 遍历链表查找一个指定的值。
  • 🚀更新(Update): 更新链表中某个结点的数据。
  • 🚀遍历(Traversal): 通过指针从链表的头结点开始,逐个访问链表中每个结点。

🚀链表与数组的比较:

  • 🚀存储分配:

    • 🚀数组需要连续的内存空间,而链表可以利用分散的碎片空间,因为每个结点只需要存储其后继结点的地址。
  • 🚀大小灵活性:

    • 🚀数组 的大小在定义时固定,不易扩展;链表的大小可以动态增减。
  • 🚀插入与删除效率:

    • 🚀对于 数组,插入或删除元素通常需要移动元素以维护元素顺序,尤其是在数组的起始位置进行操作时效率很低。
    • 🚀对于 链表,插入或删除结点只需要更新指针,效率较高。
  • 🚀访问效率:

    • 🚀数组 支持随机访问,可以通过索引快速访问任何元素。
    • 🚀链表 需要从头开始遍历才能访问特定位置的元素。

🚀链表常用于实现文件系统、哈希表和邻接表等数据结构,在算法和程序设计中,了解链表如何工作并掌握其基本操作对于解决各种问题至关重要。

相关文章:

【简单介绍下链表基础知识】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...

leetcode 2915.和为目标值的最长子序列的长度

思路:01背包 这个背包问题很经典了,但是这里涉及到一个问题,就是我们转化问题的时候发现,这个背包需要正好装满才行。这里我们把长度作为价值,也就是说每一个数的价值都是1。 我们需要把dp初始化为全部为负数&#x…...

欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理和高斯消元

欧拉函数 给定 n 个正整数 ai,请你求出每个数的欧拉函数。 欧拉函数的定义1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。 若在算数基本定理中,Np1a11p2a2…pmm,则:ϕ(N) Np1−1/p1p2−1/p2…pm−1/pm 输…...

自定义原生小程序顶部及获取胶囊信息

需求:我需要将某个文字或者按钮放置在小程序顶部位置 思路:根据获取到的顶部信息来定义我需要放的这个元素样式 * 这里我是定义某个指定页面 json:给指定页面的json中添加自定义设置 "navigationStyle": "custom" JS&am…...

yolov8推理由avi改为mp4

修改\ultralytics-main\ultralytics\engine\predictor.py,即可 # Ultralytics YOLO 🚀, AGPL-3.0 license """ Run prediction on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ yolo modepred…...

Vue3设置缓存:storage.ts

在vue文件使用: import { Local,Session } from //utils/storage; // Local if (!Local.get(字段名)) Local.set(字段名, 字段的值);// Session Session.getToken()storage.ts文件: import Cookies from js-cookie;/*** window.localStorage 浏览器永…...

超市信息管理系统(java+swing+jdbc+msyql)

...

如何用AI工具提升日常工作效率,帮我们提速增效减负

昨天,coze海外版支持了GPT4o, 立马体验了下,速度杠杠的。 https://www.coze.com 支持chatGP和gemini模型,需要科学上网。国内 https://www.coze.cn支持语雀、KIMI模型。 这里回到正题, 如何用AI工具提升日常工作效率…...

C++: 优先级队列的模拟实现和deque

目录 一、优先级队列 1.1优先级队列 priority_queue介绍 1.2优先级队列的使用 1.3priority_queue的模拟实现 二、deque 2.1deque介绍 2.2deque的优缺点 2.3为什么选择deque作为stack和queue的底层默认容器 一、优先级队列 1.1优先级队列 priority_queue介绍 1.11 优先级队…...

C++ socket epoll IO多路复用

IO多路复用通常用于处理单进程高并发,在Linux中,一切皆文件,一个socket连接会对应一个文件描述符,在监听多个文件描述符的状态应用中epoll相对于select和poll效率更高 epoll本质是系统在内核维护了一颗红黑树,监听的文…...

缓存IO与直接IO

IO类型 缓存 I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间(用户空间&#xff0…...

输入输出(3)——C++的标准输入流

目录 一、cin 流 二、成员函数 get 获取一个字符 (一)无参数的get函数。 (二)有一个参数的get函数。 (三)有3个参数的get函数 (四)用成员函数 getline 函数读取一行字符 (五)用成员函数 read 读取一串字符 (六)istream 类…...

[力扣题解] 344. 反转字符串

题目&#xff1a;344. 反转字符串 思路 双指针法 代码 class Solution { public:void reverseString(vector<char>& s) {int i, j, temp;for(i 0, j s.size()-1; i < j; i, j--){temp s[j];s[j] s[i];s[i] temp;}} };...

找不到msvcr110.dll无法继续执行代码的原因分析及解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到msvcr110.dll文件。这个错误通常发生在运行某些程序或游戏时&#xff0c;系统无法找到所需的动态链接库文件。为了解决这个问题&#xff0c;下面我将介绍5种常见的解决方法。 一&#…...

深入理解数仓开发(一)数据技术篇之日志采集

前言 今天开始重新回顾电商数仓项目&#xff0c;结合《阿里巴巴大数据之路》和尚硅谷的《剑指大数据——企业级电商数据仓库项目实战 精华版》来进行第二次深入理解学习。之前第一次学习数仓&#xff0c;虽然尽量放慢速度力求深入理解&#xff0c;但是不可能一遍掌握&#xff0…...

Edge浏览器:重新定义现代网页浏览

引言 - Edge的起源与重生 Edge浏览器&#xff0c;作为Microsoft Windows标志性的互联网窗口&#xff0c;源起于1995年的Internet Explorer。在网络发展的浪潮中&#xff0c;IE曾是无可争议的霸主&#xff0c;但随着技术革新与用户需求的演变&#xff0c;它面临的竞争日益激烈。…...

HDFS,HBase,MySQL,Elasticsearch ,MongoDB分别适合存储什么特征的数据?

HDFS&#xff08;Hadoop Distributed File System&#xff09;通常用于存储大规模数据&#xff0c;适合存储结构化和非结构化数据&#xff0c;例如文本文件、日志数据、图像和视频等。 HBase是基于Hadoop的分布式数据库&#xff0c;适合存储大量非结构化和半结构化的数据&…...

ArcGIS中离线发布路径分析服务,并实现小车根据路径进行运动

ArcGIS中离线发布路径分析服务&#xff0c;您可以按照以下步骤操作&#xff1a; 准备ArcMap项目&#xff1a; 打开ArcMap并加载包含网络分析图层的项目。在ArcMap中&#xff0c;使用 Network Analyst Toolbar 或 Catalog 创建网络数据集&#xff08;Network Dataset&#xff09…...

时政|医疗结果互认

背景&#xff08;存在的问题&#xff09; 看同一种病&#xff0c;换一家医院甚至换一个院区、换一个科室&#xff0c;检查检验还得再来一遍&#xff0c;费钱又费时。开展检查检验结果互认&#xff0c;可以明显减轻患者就医负担。患者不用做重复检查&#xff0c;也可节约就医时…...

华为OD机试【找出通过车辆最多颜色】(java)(100分)

1、题目描述 在一个狭小的路口&#xff0c;每秒只能通过一辆车&#xff0c;假设车辆的颜色只有 3 种&#xff0c;找出 N 秒内经过的最多颜色的车辆数量。 三种颜色编号为0 &#xff0c;1 &#xff0c;2。 2、输入描述 第一行输入的是通过的车辆颜色信息[0,1,1,2] &#xff0…...

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

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

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中&#xff0c;经常会遇到端口被占用的问题&#xff08;如 8080、3306 等常用端口&#xff09;。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口&#xff0c;帮助你高效解决此类问题。​ 一、准…...

基于 HTTP 的单向流式通信协议SSE详解

SSE&#xff08;Server-Sent Events&#xff09;详解 &#x1f9e0; 什么是 SSE&#xff1f; SSE&#xff08;Server-Sent Events&#xff09; 是 HTML5 标准中定义的一种通信机制&#xff0c;它允许服务器主动将事件推送给客户端&#xff08;浏览器&#xff09;。与传统的 H…...

el-amap-bezier-curve运用及线弧度设置

文章目录 简介示例线弧度属性主要弧度相关属性其他相关样式属性完整示例链接简介 ‌el-amap-bezier-curve 是 Vue-Amap 组件库中的一个组件,用于在 高德地图 上绘制贝塞尔曲线。‌ 基本用法属性path定义曲线的路径,可以是多个弧线段的组合。stroke-weight线条的宽度。stroke…...

Neo4j 完全指南:从入门到精通

第1章&#xff1a;Neo4j简介与图数据库基础 1.1 图数据库概述 传统关系型数据库与图数据库的对比图数据库的核心优势图数据库的应用场景 1.2 Neo4j的发展历史 Neo4j的起源与演进Neo4j的版本迭代Neo4j在图数据库领域的地位 1.3 图数据库的基本概念 节点(Node)与关系(Relat…...