第三章——线性表(2 链表)

单链表结构与顺序存储结构优缺点:

简单的对单链表结构和顺序存储结构做对比:

存储分配方式

时间性能

空间性能

1.       顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。

2.       单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素。

1.       查找

顺序存储结构 O( 1 )

单链表 O( n )

2.       查找和删除

顺序存储结构需要平均移动表长一半的元素。时间为 O( n ) ;

单链表在线出某位置的指针后,插入和删除时间仅为 O(1);

1.  顺序存储结构需要预分配存储结构,分大了,浪费,分小了易发生上溢。

2.  单链表不需要分配存储空间,只要有就可以分配,元素个数也不受限制。

若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁的插入和删除时,宜采用单链表结构。

当线性表中的元素个数变化较大,或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。如果事先知道了线性表的大致长度,用顺序存储结构效率会高很多。


静态链表

用数组表述的链表叫做静态链表。这种描述方法还有起名叫做游标实现法。

/* 线性表的静态链表存储结构 */
#define  MAXSIZE  1000       /*  假设链表最长的长度是1000  */
typedef   struct
{
        ElemType  data;
        int  cur;                    /*  游标 (Cursor),为 0 时表示无指向  */
}



















你可能感兴趣的:(第三章——线性表(2 链表))