现在的位置: 首页 > 综合 > 正文

顺序表和链表的比较

2018年09月03日 ⁄ 综合 ⁄ 共 855字 ⁄ 字号 评论关闭
文章目录

线性表的存储有两种:

           顺序存储表和链式存储表。具体存储方式可根据具体问题的要求和性质来决定。
       根据线性表定长与不定长确定:顺序存储结构一般要求数据存放的物理和逻辑地址连续;而链式存储结构数据存放地址可连续可不连续,在线性表长度没有确定的情况下,一般采用链式存储结构比较好,反之应以顺序存储为主。

        一般选择存储结构时可以主要从以下两个方面考虑:
     (1)基于空间的考虑
              顺序表的存储空间是静态分配的,在程序执行之前一般必须明确规定它的存储规模。若线性表的长度n变化较大,则存储规模难于预先确定(定义太大可能浪费空间,定义太小又可能不够用)。因此,当线性表的长度变化较大,难以估计其存储规模时,以采用动态链表作为存储结构为好。反之如果存储规模比较小,并且线性表的长度一般固定时,可使用顺序存储。
存储密度=(结点数据本身所占的存储量)/(结点结构所占的存储总量)
一般地,存储密度越大,存储空间的利用率就越高。顺序表的存储密度为1,而链表的存储密度小于1。由此可知,当线性表的长度变化不大,易于事知确定其大小时,为了节约存储空间,宜采用顺序表作为存储结构。

      (2)基于时间的考虑
               顺序表是由向量实现的,它是一种随机存取结构,对表中任一结点都可在O(1)时间内直接地存取,而链表中的结点,需顺序存取,应从头指针起顺着链指针扫描结点才能获得。因此,若对线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表的存储结构比较好。
                反之,如果在线性表中需要做较多的插入和删除,如果采用顺序存取,可能造成大量的数据移动,在时间上的开销较大,而采用链式存储时,只需要修改相应地指针就可以了。

         如果比较偏重线性表的查找,通常很少对线性表进行插入删除操作时,因为顺序存储结构为随机存取(存取速度快),而链式存储结构为顺序存取(相对较慢),此时应所以应采用顺序存储结构较好。

抱歉!评论已关闭.