线性表——链表的概念

-----------------------------------------------------------------------------------------------------------------------------

前言:

感觉自己总是不太会做笔记,每一次一开始做笔记还好好地,越到后面就是一顿上课听课的截图,然后就渐渐的不想做笔记了,感觉这个习惯也不太好,所以我得认认真真的做好每一篇笔记!

-----------------------------------------------------------------------------------------------------------------------------

回顾顺序表的相关知识:

特点:以物理位置相邻表示逻辑关系

优点:任一元素均可随机存取

缺点:进行插入和删除操作时,需移动大量的元素。存储空间不灵活

***********************************************************************************************************

一、线性表的链式表示和实现

1、链式存储结构:

结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻。

线性表的链式表示又称为非顺序映像链式映像

用一组物理位置任意的存储单元来存放线性表的数据元素。

这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。

链表中元素的逻辑次序和物理次序不一定相同。

例如1:

 如上图右边的链表所示:

结点是由数据域(存储的数据)和指针域(直接后继结点的地址)组成的。

存储的地址也叫指针或者链(如上表所示)。

头指针用来记录第一个元素的地址

如果头指针的名字为H,那么单链表的命名就是单链表H。

例如2:

解释:我们可以通过头指针找到第一个元素的地址,以此类推找到后面所有的元素。如最后元素是z,z后面没有其他元素的,所以指向的是一个空值(NULL),符号:^

2、与链式存储有关的术语

(1)结点

数据元素的存储映像。由数据域和指针域两部分组成

(2)链表

n个结点由指针链组成一个链表
它是线性表的链式存储映像,称为线性表的链式存储结构

 将线性表映射到物理内存中,只不过这样的映射不是连续的。

3、单链表、双链表、循环链表

 在循环链表中,最后一个元素存储的地址是:头结点的地址

4、头指针、头结点、首元结点

 如何表示空表,用一句话来概括就是:头指针为空或者头结点的指针域为空

 

5、链表(链式存储结构)的特点

(1)结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻

(2)访问时只能通过头指针进入链表,并通过每个结点的指针域依次向后顺序扫描其余结点,所以寻找第一个结点和最后一个结点所花费的时间不等。 (这种存取元素的方法被称为顺序存取法,所以说链表是顺序存取的,而前面讲到的顺序表是随机存取的

二、单链表的定义

知识回顾:

 

1、单链表的定义与表示

struct表示是结构类型

ElemType 元素类型,类型是data

*next表示是一个指针

typedef表示是将这个结构类型重新起了一个名字:

三、单链表的基本操作——初始化和判断空表 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值