线性表的链式存储结构详解
前言:为什么会出现线性表的链式存储结构呢?因为顺序存储结构是采用一块连续的存储单元存储线性表,在对线性表进行插入删除时非常不方便,为了解决顺序存储结构中的这个缺点,于是人们就想能不能采用一种不连续的存储方式,哪里有空位就到哪里去,能够通过第一个元素依次找到其后的各个元素,于是就产生了链式存储结构
1、定义
链式存储结构采用一组任意的存储单元存储线性表(可以连续可以不连续);n个结点链成一条链表
2、分类
链表分为单链表,双链表,静态链表,循环链表
3、易混淆点
(1)结点有数据域和指针域构成,next指针域指向的是其后的整个结点,并不是结点的一部分
(2)头指针:指向链表中的第一个结点;若链表有头结点,头指针指向头结点,若没有,头指针指向第一个结点;头指针标识一个链表(头指针代表一个链表),不管链表是否为空,头指针一定不为空;
头结点:第一个数据元素之前的结点;通常数据域无意义
(3)含头结点和不含头结点链表为空的判断方法(设头指针为L)
含头结点:L->next = NULL
不含头结点:L = NULL
4、单链表结点的定义
typedef struct
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
说明:(1)链表由一个个结点构成,想建立一个链表只需要往表中添加结点即可
(2)LinkList代表了结构体类型的指针,定义的指针的结构也含数据域和next指针域
(3)L->next代表头结点的指针(->代表取结构体中包含的元素)
线性表的链式存储结构详解相关推荐
- 数据结构和算法:(3)3.2线性表的链式存储结构
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素也就是说你这个可以放在A地点,这个可以放在E地点,A地点和E地点中间可以隔开一个C地点和D地点,这样是允许的),这组存储单元可以存在 ...
- 链表list(链式存储结构实现)_5 线性表的链式存储结构
系列文章参考资料为<大话数据结构>,源码为个人私有,未经允许不得转载 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,可以使连续的,也可以不连续,也就意味这些元素可以 ...
- 从零开始学数据结构和算法(二)线性表的链式存储结构
链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...
- 《数据结构》c语言版学习笔记——其他链表(线性表的链式存储结构Part2)
线性表的链式存储结构 数据结构系列文章 第三章 循环链表.双向链表 文章目录 线性表的链式存储结构 前言 一.循环链表 (一)定义 (二)尾指针 二.双向链表 (一)定义 (二)代码 总结 前言 提示 ...
- 《数据结构》c语言版学习笔记——单链表结构(线性表的链式存储结构Part1)
线性表的链式存储结构 数据结构系列文章 第二章 单链表结构 文章目录 线性表的链式存储结构 前言 一.单链表的建立 代码 二.单链表的读取 代码 三.单链表的插入 代码 四.单链表的删除 代码 五.单 ...
- 数据结构开发(5):线性表的链式存储结构
0.目录 1.线性表的链式存储结构 2.单链表的具体实现 3.顺序表和单链表的对比分析 4.小结 1.线性表的链式存储结构 顺序存储结构线性表的最大问题是: 插入和删除需要移动大量的元素!如何解决? ...
- 线性表(链式存储结构)C语言
文章目录 一.线性表的链式存储结构 二.代码 1.头文件与宏定义: 2.对链表的定义及主要使用函数: 3.测试函数(主函数): 三.运行结果 一.线性表的链式存储结构 线性表的链式存储结构的特点是用一 ...
- Python 数据结构 之 线性表 的链式存储结构
用Python 来实现 C语言中 线性表的链式存储结构. 文章转载请注明: Python 数据结构 之 线性表 的链式存储结构 代码地址 https://github.com/WenkeZhou/P ...
- 【数据结构】CH2 线性表的链式存储结构
目录 一.链表概述 1.相关定义 二.单链表 1.插入和删除节点的操作 (1)插入结点 (2)删除结点 2.建立单链表 (1)头插法 (2)尾插法 3.线性表基本运算在单链表中的实现 (1)初始化线性 ...
- 线性表的链式存储结构以及单链表的插入和删除原理实现
线性表的链式存储结构 线性表中的每个元素最多只有一个前驱元素和一个后继元素(其逻辑结构),因此可以采用链式存储结构存储. 链表 线性表的链式存储结构称为链表.在链表中每个结点不仅包含有元素本身的信息( ...
最新文章
- Android 自定义View Canvas —— Bitmap
- Silverlight中本地化的实现(语言切换)
- Spring5参考指南:AspectJ高级编程之Configurable
- 使用回溯法解决编辑距离问题(C语言)
- C#并行编程(3):并行循环
- mysql重置root密码方法
- php基础开发(集成环境搭建)
- S3C2440裸奔篇之MMU
- java连接unix_Java 使用 UnixSocket 调用 Docker API
- js实现侧边栏信息展示效果
- PropertyGrid伴侣PropertyTable
- 数据挖掘如何计算相关性_一份数据挖掘入门指南!!!
- String变量的两种创建方式
- python分析国家统计局数据网站人口结构、出生率、死亡率等基本情况
- COGS 734. [网络流24题] 方格取数问题
- 明星证券化之殇|一点财经
- 特稿 | 纳德拉成长史 x 微软重生之路
- 18.2 增强型图元文件
- JAVA多线程模仿站台三个窗口同时出售20张票
- 法兰克oitf操作_FANUC 系列操作面板各按键
热门文章
- silvaco 安装
- 解决accuracy_score报错Classification metrics can‘t handle a mix of continuous and multiclass targets
- 计算机编辑作业之目录制作,大学计算机ppt作业
- vue组件库和组件文档生成
- 2021-2027全球与中国兽医临床试验业务市场现状及未来发展趋势
- 如何用mac刷路由器
- 数字图像处理与Python实现-图像变换-Radon变换
- 爬虫 - 超级鹰的基本使用
- NFT游戏系统开发(NFT元宇宙系统定制开发)
- 深信服AC1100上网行为管理