链表--part 1--链表基础理论(概括)
文章目录
- 单链表
- 双链表
- 循环链表
- 链表
- 链表的定义
- 删除节点
- 增加节点
首先什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。
链表的入口节点称为链表的头结点也就是head。
链表的数据域分为两个区域: 一个是数据域,一个是地址域。
下面是链表的分类
单链表
单链表实际上就是上面的那一个图。见上图即可。
双链表
单链表中的指针域只能指向节点的下一个节点。
双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。
双链表 既可以向前查询也可以向后查询。
循环链表
循环链表,顾名思义,就是链表首尾相连。
循环链表可以用来解决约瑟夫环问题。
链表
由于数组的内存在空间上是连续存储的,所以对于数组的删除节点只需要直接进行【】进行覆盖即可。
但是链表在内存中可不是连续分布的。链表是通过指针域的指针链接在内存中各个节点。
所以链表中的节点在内存中不是连续分布的,而是散乱分布在内存中的某地址上,分配机制取决于操作系统的内存管理。
链表的定义
struct ListNode
{int val;//数据域ListNode* next;//地址域ListNode(int x): val(x),next(NULL){}//构造函数
};
链表的调用:
ListNode* p = new ListNode(5);
cout << p->val << endl;
ListNode* q = new ListNode();//跟编译器相关,有的可以有的不行,有的编译器可以自动帮你定义一个新的,有的只有在没有的情况下帮你定义。
cout << q->val << endl;
删除节点
其实图片已经展示的很清楚了,实际上按照图片的操作来即可,数据结构就是按照自己的图示来进行的操作。
增加节点
同理
链表--part 1--链表基础理论(概括)相关推荐
- Go 学习笔记(80)— Go 标准库 container/list(单链表、双链表)
列表是一种非连续存储的容器,由多个节点组成,节点通过一些变量记录彼此之间的关系.列表有多种实现方法,如单链表.双链表等. 在 Go 语言中,将列表使用 container/list 包来实现,内部 ...
- 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)
目录 一.单链表 1.存储方式 2.插入 3.删除 总代码: 二.静态链表 1.存储方式 2.插入 3.删除 4.遍历 总代码: 三.循环链表 总代码: 四.双向循环链表 1.存储方式: 2.插入和删 ...
- python之链表、单链表、双向链表、单向循环链表
python之链表.单链表.双向链表.单向循环链表 链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时,又需要进行数据的搬迁,所以使用起来并非很灵活 链表结构可以充分利用计算机 ...
- python去实现链表_python实现链表
链表: 链表不需要在内存存储一个连续的地方,通常就像一个链一样 它的每个节点包含本身和下一个元素的地址,以此来把两个元素进行关联,这就是一个链表 链表分单项和双向,一般单项就够用了. 链表存在的用意义 ...
- 输入一个链表,反转链表后,输出新链表的表头(ACM格式)(美团面试题)
输入一个链表,反转链表后,输出新链表的表头 其实这道题就是一个反转链表的题,但是因为自己不会建立链表,所以特地采用ACM的格式试着编写一下,这也美团给我出的一道实习算法题. public class ...
- 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...
- 面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路 使用栈依次存放输入的链表顺序的值,然后依次出栈便是链表的逆序. 代码 import java.util.ArrayList ...
- 数据结构5: 链表(单链表)的基本操作及C语言实现
逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...
- 《程序员代码面试指南》第二章 链表问题 在单链表和双链表中删除倒数第K个节点...
题目 在单链表和双链表中删除倒数第K个节点 java代码 /*** @Description:在单链表和双链表中删除倒数第K个节点* @Author: lizhouwei* @CreateDate: ...
- 链表的各种操作实现 链表逆序 链表排序 有序链表归并 链表存在环的判定
链表的各种操作实现 链表逆序 链表排序 有序链表归并 链表存在环的判定 链表基本操作实现 c语言版本, 该程序在visual c++ 6.0上调试通过! 本人写该程序完全是为学习交流之用,还望大家多多 ...
最新文章
- HBase存储剖析与数据迁移
- linux mount挂载命令(将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来)
- JavaScript 第二课 JavaScript语法
- 数学史思维导图_【学科活动】思维导图展风采,数学文化提素养——庆云县第四中学(北校区)四年级数学组活动小记...
- 第一章:OpenCV入门
- ant指定servlet版本_[转载]程序开发常见错误
- URAL 1004 Sightseeing trip
- redis 使用案例
- 单片机程序配置成开漏输出_单片机I/O口推挽与开漏输出详解
- 详解百度地图API之驾车导航
- 5年后、10年后,你希望自己是个什么样的人?
- Deformable Convolutional Networks论文翻译——中文版
- android 画图
- 如何像Python高手(Pythonista)一样编程
- 热炒了的《消防设施操作员》,想报考却为何冷中带静?
- 线性表——链表的应用
- Matlab实现拉格朗日插值函数
- python最强web框架fastapi,比肩go,nodejs
- 计算机等级考试四级网络工程师真题,全国计算机等级考试四级网络工程师笔试真题...
- PAT 1029 Median
热门文章
- Arduino code for RS-365PW 16120
- Python - 面向对象编程 - 反射 hasattr、getattr、getattr、delattr
- 中学计算机机房科学家标语,中小学教师办公室文化标语集锦
- java课程设计-广告墙
- 计算机检索逻辑关系,计算机检索技术 ppt课件.ppt
- 论公交车载pos十年后的样子
- c51 嵌入 汇编语言,单片机代码编程时如何嵌入汇编语言
- bilibili正式进军造车领域!投资吉利极氪
- Excel中如何使用MATCH函数
- 小米手机如何升级Android版本,MIUI官方公布小米手机升级Android Q计划