[数据结构]-04顺序表和链表

本文详细介绍了数据结构中的顺序表和链表,包括它们的插入、删除操作以及优缺点。顺序表存储空间连续,适合查找,但插入删除效率低。链表存储灵活,插入删除快速,但查找效率低。文中还对比了单链表、循环链表和双向链表,提供了应用场景及算法例题,如链表翻转,强调了选择合适数据结构的重要性。
摘要由CSDN通过智能技术生成

顺序表

按照顺序存储方式存储的线性表称为顺序表。

若顺序表中的元素按其值有序,则称其为有序顺序表。

顺序表的插入

设顺序表 A A A 的长度为 n n n,将字段值为 i t e m item item 的元素插入到第 i i i 个位置,插入步骤如下:

  • 保证顺序表存储空间未满,并且插入位置合法
  • 将第 i i i 个位置元素及其之后的所有元素后移一个位置
  • 插入成功后,线性表长度变为 n + 1 n+1 n+1
顺序表的删除

设顺序表 A A A 的长度为 n n n,删除第 i i i 个位置的元素,删除步骤如下:

  • 保证删除位置合服性

  • 将第 i i i 个位置之后的所有元素前移一个位置

  • 删除成功后,线性表长度变为 n − 1 n-1 n1

顺序表总结
  • 特点:存储地址连续,数据元素存储依次存放;数据元素类型相同,数据元素可随机存取
  • 优点:存储空间的利用率高,存取速度快,适用于存取需求多的线性表
  • 缺点:静态存储形式,数据元素的个数不能自由扩充 (受存储空间的限制);在插入、删除某个元素时,需要移动大量元素

单链表

结点只有一个指针域的链表成为单链表。

数据域 data 存放当前结点数据域的值,指针域 next 存放该结点的后继结点的地址信息。

若表中只有头结点,则链表长度为 0,此时称其为空链表。

单链表的指针之间关系:
p p p 为指向单链表第 i i i 个结点的指针,则可以知道:

  • p . n e x t p.next p.next 指向第 i + 1 i+1 i+1 个结点
  • p . d a t a p.data p.data i i i 个结点的数据域
  • p . n e x t . d a t a p.next.data p.next.data i + 1 i+1 i+1 个结点的数据域

通过头指针进入单链表,根据每个结点的指针域可以循环遍历整个链表。

单链表中获取元素

获取单链表第 i i i 个数据步骤如下:

  • 声明一个结点 p p p 指向单链表的第一个结点,初始化 j j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值