线性表

线性表

大纲:

  1. 线性表的基本概念和类型定义
  2. 线性表的顺序存储结构
  3. 线性表的链接存储结构
定义
  • 线性表是具有相同特性数据元素的一个有限序列。该序列中所含元素的个数叫做线性表的长度。长度用n(n>0)表示
逻辑特性
  • 只有一个表头元素。
  • 只有一个表尾元素。
  • 除表头和表尾元素外,其他元素都只有一个直接前驱,也只有一个直接后继。
存储结构
** 1. 顺序表 **
  • 把线性表中的所有元素按照其逻辑顺序,一次存储到从指定的存储位置开始的一段连续的存储空间中。
  • 顺序表具有随机访问特性
  • 顺序表占用连续的存储空间
  • 顺序表做插入操作要移动多个元素
** 2. 链表 **
  • 链表存储中,每个结点不仅包含所存元素的信息,还包含元素之间逻辑关系的信息。
  • 链表不支持随机访问
  • 链表结点存储空间利用率比顺序表稍低
  • 链表支持动态分配
  • 链表进行插曲操作无须移动元素
  • 链表有以下五种形式
    1)单链表
  • 带头结点的单链表
  • 不带头结点的单链表
    2)双链表
  • 比单链表多了个指向前驱的指针域
    3)循环单链表
  • 最后一个指针域指向第一个结点
    4)循环双链表
    -同单链表
    5)静态链表
  • 借助一维数组表示,结点空间来自结构体数组。有两个分量,一个是数据元素分量data,另一个是指针分量,记录了直接后继结点的数组下标,相当于链表中的next指针。
顺序表和链表的比较

** 1. 空间 **

  • 顺序表一次性分配存储空间,链表多次分配
    ** 2. 存储密度**
  • 顺序表=1,链表<1(结点中有指针域)
    ** 3. 时间**
    1)存取方式
  • 顺序表可以随机存取,也可以顺序存取
    链表只能顺序存取
    2)插入/删除时移动元素的个数
  • 顺序表平均移动一半,链表不移动,只修改指针

3)顺序表插入和删除时间复杂度分析
具有n个元素的顺序表,插入一个元素平均移动多少个元素(假设新元素仅插入到每个元素之后)
①求概率
有n个可插入位置,所以每个位置被插入的概率** p=1/n**
②每个插入位置需要移动的元素的个数
n-i
求出数学期望。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值