数据结构之线性表(四)——链式存储结构(概念)

顺序表和链表的区别
顺序表存储地址连续,而链表可以连续也可以不连续。这就需要链表中每个结点不仅要存放数据元素(数据域),还要存放指向其后继元素的地址(指针域)。
在这里插入图片描述
数据域:存放元素数值数据
指针域:存放直接后继结点的存放位置

链表里的相关概念

1.结点:数据元素的存储映像,由数据域和指针域两部分组成。在这里插入图片描述
2.链表:n个结点由指针链组成的链表。
在这里插入图片描述
3.链表类型

  • 单链表:结点中只有一个指针域的链表。在这里插入图片描述
  • 双链表:结点中只有两个指针域的链表。在这里插入图片描述
  • 循环链表:首尾相连的链表,即尾结点的指针域中存放头节点的地址。
    在这里插入图片描述

4.头指针、头结点和首元结点在这里插入图片描述

  • 头指针:指向链表中第一个结点的指针。
  • 首元结点:链表中存储第一个数据元素 a 1 a_1 a1的结点。
  • 头结点:在链表的首元结点之前附设的一个结点(为了处理方便)。

5.链表的两种形式(根据有无头结点)

  • 不带头结点在这里插入图片描述
  • 带头结点在这里插入图片描述

有关链表的几个讨论

1.如何表示空表?

  • 无头结点时,头指针为空时表示空表。
    在这里插入图片描述
  • 有头结点时,当头结点的指针域为空时表示空表。
    在这里插入图片描述

2.在链表中设置头结点有什么好处?

  • 便于首元结点的处理
           首元结点的地址保存在头结点的指针域中,所以在链表的第一个位置上的操作和其他位置一致,不需要进行特殊处理。
  • 便于空表和非空表的同一处理
           无论链表是否为空,头指针都是指向头结点的非空指针,因此空表和非空表的处理也就统一了。

3.头结点的数据域内装的是什么?

       头结点的数据域内可以为空,也可以存放线性表长度等附加信息,但此节点不计入链表长度值。在这里插入图片描述
链表的特点

  • 结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻。
  • 访问时只能通过头指针进入链表,并通过每个结点的指针域依次向后扫描其余结点,所以寻找第一个结点和最后一个结点所花费的时间不等——这种存取元素的方法称为顺序存取法
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值