基本数据结构——顺序表

顺序表的基本形式

  1. 顺序表的基本布局:逻辑地址+元素存储+物理地址
  2. 元素外置的顺序表:逻辑地址+物理地址——>元素
    其中
    逻辑地址为:0,1,…,n-1
    物理地址为:l_0+1xc , l_0+2xc, … , l_0+(n-1)xc

顺序表的结构与实现

顺序表的结构

表头信息:存储区容量+元素个数
数据区:存储的数据

顺序表有一体式结构和分离式结构

元素存储区的扩充

  1. 每次扩充固定数目的存储位置:节省空间,但操作频繁次数多
  2. 每次扩充容量加倍:操作执行次数相对较少,但浪费空间资源。以空间换时间

顺序表的操作

增加元素

  1. 尾端增加元素,时间复杂度O(1)
  2. 非保序加入元素,O(1)
  3. 保序地加入元素,O(n)

删除元素

  1. 删除表尾元素,O(1)
  2. 非保序的元素删除,O(1)
  3. 保序的元素删除,O(n)

Python中的顺序表

Python中有 list 和 tuple 两种类型采用了顺序表的实现技术
其中tuple是不可变的顺序表

list的基本实现技术

list中可以加入和删除元素,在操作中维持已有元素的顺序,具有以下特征:

  1. 基于下标的高效元素访问和更新,时间复杂度O(1),采用顺序表技术
  2. 允许任意加入元素,且在不断加入元素的过程中,表对象的id不变,采用分离式顺序表

注意:

  1. 建立空表时,操作系统分配能容纳8个元素的存储区
  2. 执行插入操作,元素存储区满,更换4倍大的存储区
  3. 如果表已经很大,则改变策略,增加1倍存储区以避免出现过多空闲存储位置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值