动态链表

本文介绍了动态链表的概念,包括结点的定义、动态链表的官方定义、头结点和头指针的解释。重点讲解了如何用链表实现线性表,包括虚拟头结点的使用,以及添加、删除、修改结点的方法实现。
摘要由CSDN通过智能技术生成

结点

结点相当于一个环,环环相扣时就组成了一个链表。在结点中主要存储着两部分信息,一部分是数据域:用来存放数据元素的信息,一个是指针域,用来存放下一个结点所在的地址,方便我们查找下一个结点,正因为存在者指针域,将各个结点链接起来,才组成了一个链表。

动态链表的官方定义:

为了表示每个数据元素ai与其直接后继数据元素ai+1 之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称做指针或链。这两部分信息组成数据元素ai的存储映像,称为结点(Node)。

我自己理解的链表:是由多个结点链接起来的线性表。

因此,n个结点(ai 的存储映像)链结成一个链表,即为线性表(a1, a2, ....,an)的链式存储结构,因为此链表的每个结点中只包含一个指针域, 所以叫做单链表。

头结点和头指针

那么问题来了,我们如何从哪里开始去查询一个链表呢?为了解决这个问题,我们设置了一个结点:头结点

头结点:是指链表中的第一个结点,有着真实头结点和虚拟头结点之分。

真实头结点:第一个结点用于存储数据。

虚拟头结点:第一个结点不允许存放数据。(我们这次采用的是虚拟头结点)

 

头指针:仅仅是一个引用变量,用来存储头结点地址的指针。

尾指针:同头指针,不过是链表中最后一个结点的指针。

线性表

到此链表的基础知识已经讲完了,然后来看具体的实现。在顺序存储结构中的线性表,我们之前是用数据来实现的。今天我们来看如何用链表来实现线性表。这是类图。

 链表实现的线性表任然

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值