数据结构6,线性表总结

线性表是数据元素的一维有序集合,包括顺序表和链表两种主要存储结构。顺序表在内存中连续存储,支持随机访问但插入删除操作可能涉及元素移动。链表则通过节点的指针链接元素,插入删除相对高效但不支持随机访问。此外,线性表的特例包括栈(先进后出)和队列(先进先出)。
摘要由CSDN通过智能技术生成

1.线性表的定义

  线性表(List):零个或多个数据元素的有限序列。线性表的元素之间存在着一一对应的关系,有且仅有一个开始和一个结束的节点,并且所有节点都最多有一个直接前驱和一个直接后继,头节点只有一个直接后继没有直接前驱,尾节点只有一个直接前驱没有直接后继,对线性表的操作主要有查找,插入和删除等。

2.线性表的分类

  线性表可以分为一般线性表,栈,队列,字符串,数组,广义表等。

  线性表按照物理存储结构的不同可以分为顺序表和链表,顺序表存储结构连续,链表在存储结构上不连续但是逻辑上是连续的。

顺序表
顺序表是在计算机内存中以( 一组地址连续 )的存储单元依次存储数据元素的线性结构。

顺序表效率分析:

顺序表插入和删除一个元素,最好情况下其时间复杂度(这个元素在最后一个位置)为O(1),最坏情况下其时间复杂度为O(n)

顺序表支持随机访问,读取一个元素的时间复杂度O(1)

顺序表的优缺点:
优点:支持随机访问

缺点:插入和删除操作需要移动大量的元素,造成存储空间的碎片。

顺序表适合元素个数变化不大,且更多是读取数据的场合。

链表
链表定义:链表是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点里存放下一个节点的位置信息(即地址)

 

顺序表存储数据信息 而链表存储下一个节点的位置( 地址 )

链表的分类:
1、 单向链表

2、单向循环链表

3、双向链表

3.线性表的抽象数据类型

线性表的抽象数据类型定义如下:

ADT 线性表(List)
Data
线性表的数据对象集合为{a1, a2, …… ,an},其中每个元素的类型均为DataType。
其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,
除了最后一个元素an外,每一个元素有且只有一个直接后继元素。
数据元素之间的关系是一对一的关系。

4.栈和队列

栈是一种可以实现“先进后出”的存储结构,通常有出栈和压栈等操作。

队列是一种可以实现“先进先出”的存储结构,一般有入队和出队等操作。


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值