您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法(顺序表)

2020-03-08 11:43 901 查看

根据线性表的实际存储方式,分为两种实现模型:

顺序表,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。
链表,将元素存放在通过链接构造起来的一系列存储块中。

顺序表的基本形式

顺序表的结构

两种基本实现的方式


图a为一体式结构,存储表信息的单元与元素存储区以连续的方式安排在一块存储区里,两部分数据的整体形成一个完整的顺序表对象。
图b为分离式结构,表对象里只保存与整个表有关的信息(即容量和元素个数),实际数据元素存放在另一个独立的元素存储区里,通过链接与基本表对象关联。

元素存储区替换

一体式结构由于顺序表信息区与数据区连续存储在一起,所以若想更换数据区,则只能整体搬迁,即整个顺序表对象(指存储顺序表的结构信息的区域)改变了。
分离式结构若想更换数据区,只需将表信息区中的数据区链接地址更新即可,而该顺序表对象不变。

元素存储区扩充

扩充的两种策略:

  1. 每次扩充增加固定数目的存储位置,如每次扩充增加10个元素位置,这种策略可称为线性增长。
    特点:节省空间,但是扩充操作频繁,操作次数多。

  2. 每次扩充容量加倍,如每次扩充增加一倍存储空间。
    特点:减少了扩充操作的执行次数,但可能会浪费空间资源。以空间换时间,推荐的方式。

顺序表操作

增加元素

  1. 尾端加入元素,时间复杂度为O(1)

  2. 非保序的加入元素(不常见),时间复杂度为O(1)

  3. 保序的元素加入,时间复杂度为O(n)

删除元素

  1. 删除表尾元素,时间复杂度为O(1)

  2. 非保序的元素删除(不常见),时间复杂度为O(1)

  3. 保序的元素删除,时间复杂度为O(n)

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Taiiiii 发布了16 篇原创文章 · 获赞 0 · 访问量 426 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐