线性表的链式存储结构详解

链式存储结构是为了解决线性表在顺序存储时插入删除操作不便的问题,通过不连续的存储单元和指针链接元素。链表包括单链表、双链表、静态链表和循环链表等类型。每个结点包含数据域和指针域,头指针标识链表,判断链表空的方法取决于是否包含头结点。单链表中,LinkList是结构体指针,用于表示链表。
摘要由CSDN通过智能技术生成

前言:为什么会出现线性表的链式存储结构呢?因为顺序存储结构是采用一块连续的存储单元存储线性表,在对线性表进行插入删除时非常不方便,为了解决顺序存储结构中的这个缺点,于是人们就想能不能采用一种不连续的存储方式,哪里有空位就到哪里去,能够通过第一个元素依次找到其后的各个元素,于是就产生了链式存储结构
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代表头结点的指针(->代表取结构体中包含的元素)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值