比较总结线性表的几种主要存储结果

比较总结线性表的几种主要存储结果

1.顺序表
  顺序表是一段地址连续的存储单元依次存储线性表的数据元素,通常用一维数组来实现,而用数组则意味着要分配固定长度的数组空间,因此要确定数组的长度。
   顺序表的优点是无需为表示表中元素之间的逻辑关系而增加额外的存储空间; 随机存取。 因为顺序表是静态存储,因此有以下缺点:插入和删除操作需要移动大量元素;表的容量难以确定;造成存储空间的“ 碎片 ”。
   但如果事先知道线性表的大致长度或取线性表中第i个元素的按位查找的时间复杂度为O(1),用顺序表更快。

2.单链表
        单链表是一组任意的存储单元存放线性表的元素,在单链表上实现插入和删除操作,无需移动结点,仅仅需要修改结点之间的链接关系。
       如果线性表需频繁进行插入与删除操作或元素个数变化太大时,宜使用单链表。

3.双链表
      双链表是在单链表的每个结点中再设置一个指向前驱结点的指针域。双链表的操作与单链表类似,不同的是插入和删除操作,但循环双链表的对称结构使得在结点p的之前或之后执行插入和删除操作都很容易。双链表的优点是使检索遍历数据更加灵活。

4.静态链表
      静态链表是用数组来表示单链表,用数组元素的下标来模拟单链表的指针,是一种假链表。静态链表虽然用数组,但在插入和删除操作时,只需修改游标,不需要移动表中元素,改进了顺序表大量移动元素的缺点,但它没有解决连续存储分配带来的 表长难以确定的问题。

5.间接寻址
     间接寻址是将数组和指针结合起来的一种方法,间接寻址保持了顺序表随机存取的优点,同时改进了插入和删除操作的时间性能,但它依然没有解决连续存储分配带来的表长难以确定的问题。
连续存储分配带来的 表长难以确定的问题。

     线性表的顺序存储和链接存储,静态链表,间接寻址的存储各有优缺点,我们要根据实际问题的需要来选择更加适合的存储结构。
   

猜你喜欢

转载自blog.csdn.net/c77777_/article/details/78208374