数据结构-线性表-链接存储

关于线性表计顺序存储可看上篇文章:数据结构-线性表-顺序存储-CSDN博客

线性表的链接存储

链接方式存储的线性表简称为链表LinkList,链表的具体存储表示为:用一组任意的存储单元来存放;链表中结点的逻辑次序和物理次序不一定相同。还必须存储指示其后继结点的地址信息。

链表分类

单链表

单链表的构成:data域,next域

  1. data域:存放结点值的数据域
  2. next域:存储结点的直接后继的地址的指针域
  3. 结点通过指针链接而组成单链表,NULL称为空指针,Head称为头指针变量,存放链表中的第一个结点地址
  4. 单链表中的第一个结点内一般不存数据,称为头结点,利用头指针存放该结点地址,加设头结点为了方便运算
  5. head是链表的头指针,head内存放的是头结点的地址。 第一个元素结点:head→next
  6. 非空单链表和空单链表示例
  7. 单头结点非空单链表和空单链表示例

链表的基本运算

链表初始化
链表长度
链表读取元素
链表数据定位
链表的插入运算
链表的删除运算

​​​​​​​循环链表

双向循环链表

顺序表和链表比较

单链表的每个结点包括数据域和指针域,指针域需要占用额外空间。

从整体考虑。顺序表要预分配存储空间,如果预先分配得过大,将造成浪费,若分配得过小,又将发生上溢;单链表不需要预先预分配空间,只要内存空间没有耗尽,单链表中的结点个数就没有限制。

顺序表和链表的时间性能比较

顺序表:读取元素:O(1);定位(找x): O(n);插入: O(n);删除: O(n);表长度: O(1)

链表:读取元素:O(n);定位(找x): O(n);插入: O(n);删除: O(n);表长度: O(n)

你可能感兴趣的:(数据结构,数据结构,链表,线性表)