前面说到线性表的顺序存储结构,它的插入和删除动作需要移动大量元素,费时。
原因:顺序存储结构的线性表,相邻元素的存储结构也是邻居关系,中间没有空隙,无法快速介入,而删除的时候回留出空隙,需要弥补。
线性表链式存储结构定义
数据域(data):存储数据元素信息的域
指针域(next):存储直接后继位置的域,指针域中存储的信息称为指针或链
由上面两部分信息组成的数据元素ai的存储映像称为结点(Node)
n个结点链结成一个链表,即为线性表(a1,a2,...,an)的链式存储结构。
单链表:链表的每个结点中只包含一个指针域
单链表的插入
将结点s插入到结点p和p->next之间
将p的后继结点改为s的后继结点,把s结点变成p的的后继结点
s->next=p->next;
p->next=s
单链表的删除
删除结点q,将q的前继结点的指针指向q的后继结点即可。
q=p->next;
p->next=q->next;