数据结构——第二章 线性表(8)——线性表总结

线性表是基本的线性结构,可以采用顺序存储或链式存储。顺序表使用一维数组表示,适合简单类型数据,而链表适用于动态分配空间,包括单向、循环等形式,适合复杂数据结构。顺序表的定义要考虑数组大小,链表则按需分配节点空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性表总结

线性表是线性结构的基本形式,用于描述一组同类型而具有1:1线性关系的数据对象。将此类数据对象存放在计算机的内存中时,必须考虑数据元素的存放和数据元素之间关系的存放。常用的存储结构有顺序存结构和链式结构。

顺序表存储特点是用一维数组存放线性表中的数据元素,用下标的相邻关系表示数据元素的直接前驱和直接后继关系。为了方便使用,经常需要用到表中数据元素的个数以及是否存在剩余空间,能够满足上述要求的变量类型是结构体类型。由于C语言没有给出此种结构体类型的定义,因此必须自定义该类型,即顺序表类型。本书给出了两种顺序表类型的定义,并进行了对比分析。第一种容易掌握,但是由于在类型中直接给出了数组的大小,因此通用性和灵活性较差。第二种在类型中给出的是存放一维数组首地址的指针成员,数组的大小由初始化操作完成,大大提高了该类型的实用性。

如果数据元素的类型是简单类型,则顺序表类型的自定义只需一步,直接定义顺序表结构体类型即可。如果数据元素的类型是结构体类型是结构体类型,则顺序表类型的自定可分两步完成。
(1)先定义数据元素对应的结构体类型。
(2)再定义顺序表结构体类型。

链式存储结构的特点是用一个带头结点的单向链表存放线性表的数据元素。其存储空间遵循“按需分配”,根据需要动态申请结点空间,不需要是可释放结点的存储空间。线性表中数据元素的关系用结点中存放后继结点地址的指针变量表示。链表对内存空间的连续性要求较低,每个数据元素占用的存储空间比顺序表中占用的空间要大。

如果数据元素的类型是简单类型,链表类型的自定义只需一步,直接定义结点类型和指向结点的指针类型即可。如果数据元素的类型是结构体类型,链表类型的自定义可分两步完成。
(1)先定义数据元素对应的结构体类型。
(2)再定义链表的结点类型和指向结点的指针类型。

链表有多种形式,除了单向链表外,还有单向循环链表和双向循环链表。
基于这两种存储结构的基本操作实现,需根据每个基本操作是否改变了存储结构中的成员值以及需要的其他条件,正确定义函数的形参。熟练掌握基本操作之后,对于其他复杂的操作,只需对基本操作进行组合或修改某些基本操作即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰深入学习计算机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值