顺序表与链表的异同

一、空间

    1) 创建

           ① 顺序表:静态创建一块连续的空间。

           ② 链表:动态的创建不连续的空间。

    2)使用

           ① 顺序表:

                            优点:

                                       按逻辑顺序连续存储,提高空间利用率;

                                       大多数高级语言都有数组,容易实现;

                                      不需要存储关系,无需额外空间开销。

                           缺点:

                                    空间长度固定,需要预先分配足够大的存储空间,估计过大,可能会导致顺序表后部大量闲置;

                                   预先分配过小,又会造成溢出。

           ② 链表:

                         优点:基本没有空间上的限制,允许线性表的长度有很大的变化,,基本只与内存空间大小有关。

                         缺点: 需要存储关系,浪费一些空间。

二、时间

    1) 查找

           ① 顺序表:按元素序号查找,时间复杂度小。

           ② 链表:需要循环链表访问,即从一个节点一个一个节点去查找元素访问,时间复杂度大。

2)添加、删除

          ① 顺序表:需要进行较多数据元素的移动,并且改变物理位置,时间复杂度大。

          ② 链表:物理位置不变,只进行少量的指针指向的变动,时间复杂度小。

三、选择

   1)从存储空间上:

       如果需要分配明确的空间大小,尽量选择顺序表;

       如果对线性表的长度与规模难以估计,最好选择链表。

   2)从操作上:

       对于经常做查找访问元素的操作,用顺序表较好;

       对于经常做添加、删除元素的操作,用链表较好。

3)基于环境的考虑:

顺序表容易实现,任何高级语言中都有数组类型;链表的操作是基于指针的,相对来讲前者简单些。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值