图文解释:

文字解释:

从4个方面比较:所占空间,运行时间效率,具体相关操作(增 删 查 改),和适用情况

其中,运行时间的比较放在了     具体相关操作 里面去解读

补充:存储密度 = 结点数据本身占用的空间 / 结点占用的空间总量

存储密度越大,存储空间的利用率越高

1.所占空间:

顺序表

(1)优点:内存空间仅需要存放数据,存储密度大(为1),每个结点所占空间小

(2)缺点:顺序存储需要数组来完成,申请的为静态内存空间,预先分配,空间固定,空间可能出现不够用或者浪费的情况

链表

(1)优点:结点空间可以动态申请和释放,灵活多变,整体空间利用率高,不会出现浪费空间以及空间不够用的现象

(2)缺点:存储密度小(小于1),每个结点所占空间大

2.具体相关操作的对比 -----------增加(插入) 和 删除操作

顺序表

(1)优点:无

(2)缺点:

需要移动数据元素,依次将  增加和删除的后面的元素进行移位

时间复杂度为 O(n)

链表

(1)优点:

无需移动数据元素,直接通过数据的指针域进行操作,实现增加和删除

时间复杂度为 O(1)

(2)缺点:无

3.具体相关操作的对比 -----------查找 和 改变操作

顺序表

(1)优点:

随机存取元素。可通过数组下标,直接找到某个数组,完成对数据的查找和改变。

时间复杂度为 O(1)

(2)缺点:无

链表

(1)优点:无

(2)缺点:

顺序存取元素,需要从首元结点,依次向后查找,直到找到所要找的数据

时间复杂度为 O(n)

4.适用情况

顺序表:

空间上:        表长变化不大

操作上:        经常进行 查找 和 改变 操作的

                       很少进行 增加(插入)和删除操作的

链表:

空间上:        表长变化大的

操作上:        经常进行 增加 和 删除 操作的

                      很少进行 查找 和 改变 操作的(影响较小)

5.总结:

无论顺序表还是链表,没有哪一种是更好的,只有在合适的情况下,选择合适的存储结构,才是正确的

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐