1、线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,
也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用的任意位置。以前在顺序结构中,每个元素只需要存
数据元素信息就可以了。现在链式结构中,出来要存数据元素信息外,还要存储它的后继元素的存储地址。因此,为了表示每个
数据元素ai与其后继元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的
信息(即直接后继的存储位置)。我们把存储数据元素信息的域成为数据域,把存储之久后继位置的域成为指针域。指针域中
存储的信息称为指针或链。这两部分信息组成数据元素ai的存储映像,称为节点(Node)。
2、n个节点(ai的存储映像)链结成一个链表,即为线性表的链式存储结构,因此链表的每个节点中只包含一个指针域,所以叫
做单链表。对于线性表来说,我们把链表中第一个节点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行了。线性链表的最后一个节点指针为“空”(通常用NULL或“^"符号表示)。
3、头指针与头结点的异同点
头指针是指链表指向第一个节点的指针,若链表有头节点,则是指向头节点的指针。头指针具有标识作用,所以常用头指针冠以
链表的名字。无论链表是否为空,头指针均不为空。头指针hi链表的必要元素。
头节点是为了操作的统一和方便而设立的,放在第一元素的节点之前,其数据域一遍无意义(也可存放链表的长度)。有了头
节点,对在第一元素节点前插入节点和删除第一结点,其操作与其它结点的操作就统一了。头结点也不一定是链表的必须要素。
4、单链表和顺序存储结构的对比
1、存储方式分配: 顺序存储结构用一段连续的存储单元一次存储线性表的数据元素;单链表采用链式存储结构,用一组任意的
存储单元释放线性的元素。
2、时间性能: 查找:顺序存储结构0(1) 单链表0(n) 插入和删除:顺序存储结构需要平均移动表长一半的元素,
时间为0(n) 单链表在找出某位置的指针后,插入和删除时间仅为0(1)
3、空间性能 :顺序存储结构需要预分配存储空间,分大了,浪费,分小了易发生上溢;单链表不需要分配存储空间,只要有
就可以分配,元素个数也不受限制。