数据结构(三)线性表

未完待续

线性表分为顺序存储链式存储结构


线性表的顺序存储:用一段地址连续的存储单元依次存储线性表的数据元素。

线性表的长度(线性表中数据元素的个数)应小于等于数组长度(放线性表的存储空间的长度)。

顺序存储结构的插入与删除。

线性表顺序存储结构的优缺点:
优点:
- 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。
- 可以快速地存取表中任一位置的元素。
缺点:
- 插入和删除操作需要移动大量元素。
- 当线性表长度变化较大时,难以确定存储空间的容量。
- 造成存储空间的“碎片”。


线性表的链式存储:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。

  • 单链表
  • 静态链表
  • 循环链表
  • 双向链表

这里需要区分的是头指针和头结点之间的关系:
头指针是指向第一个结点的指针(当有头结点时指向头结点),且头指针不为空,是构成一个链表的必要元素。
头结点是为了方便操作而设立的,放在第一个元素结点之前,它的数据域没有意义,对于一个链表来说它不是一定要具备的。

顺序储存结构单链表结构的对比:
- 存储分配方式不同:顺序存储结构要求在一个连续的存储单元中,单链表可以在任意单元内。
- 时间性能的差异:
1)查找(顺序存储结构**O(1),单链表**O(n))
2)插入和删除(**顺序存储结构**O(n),单链表O(1))
- 空间性能:顺序存储结构容易上溢,单链表不受限制。

静态链表
假设地址从0开始,一直到999,一共一千个地址。
默认规则:下标为0的单元存储cur第一个空闲单元,最后一个单元存储第一个已经存储的坐标。
初始化:下表为i的地址单元cur为i+1,最后一个为0。
插入:找到第一个空闲地址,把当前第二个空闲地址赋值到“下标为0”的单元,并赋值到第一个空闲地址中。
删除:把要删除的单元储存cur存为当前第一个空闲坐标,将第一个存储单位修改为要删除的单位储存。
循环列表

双向链表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值