2-线性表之单链表的原理与实现

线性表的链表存储又称之为单链表,通过任意存储单元来存储线性表中的数据元素,且元素存放的位置随机,每个链表的节点,除了要存放数据元素以外,还要存放指针信息。

利用单链表可以解决顺序表需要大量连续内存的存储单元的缺点,但是单链表存在指针域,所以也会额外占用存储空间,因为单链表随机存储在内存中的原因,所以我们不能直接找到链表中的特定的节点,也就是失去了随机存储的特点,每次要查找某个元素时,都要从表头开始逐个查找。

我们常用头指针来标识一个链表,头指针为空时表示这是一个空表,且为了操作方便,我们通常会在单链表第一个节点之前添加一个头节点,头节点不带任何信息,指向链表的第一个元素

头指针与头节点:不管带不带头节点,头指针始终指向链表的第一个节点,而头节点是 带头节点的链表 中的第一个节点,通常不存储信息

引入头节点有两个优点:

  • 由于第一个元素的位置存储在头节点的指针域中,所以链表第一个位置上的操作与其他位置的操作一致,所以无需进行特殊处理
  • 无论链表是否为空,头指针都会指向头节点(空表中头节点的指针与为空),因此空表和非空表的处理也就得到了统一。

下面的代码描述的是带头节点的单链表

#include<iostream>

using namespace std;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值