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

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值