链式存储:不要求逻辑上相邻的数据元素在物理位置上也相邻。
单向链表:结点中的指针域只有一个沿着同一个方向表示的链式存储结构。
对于链式分配线性表,整个链表的存取必须是从头指针开始,头指针指示链表中第一个结点的存储位置。同时由于最后一个数据元素,没有直接后继,则线性链表中最后一个结点的指针为空(null)。
使用单向链表时必须完成三步:
创建一个新的结点
为该结点赋一个新值,将当前元素的next域赋给新结点的next域
当前结点的前趋的next域要指向新插入的结点
动态建立单向链表的常用方法有如下两种方法:
尾插入法、头插入法
循环链表:单向链表的最后一个结点的指针把null改为指向第一个结点
循环链表一般以末尾结点的指针作为已知条件。
双(向)链表:在单向链表的每个结点里添加一个指向其直接前趋结点的指针域prior,这样形成的链表中由两条方向不同的链,故称为双(向)链表。
双(向)循环链表
单链表插入修改两个指针
双链表插入修改四个指针
单链表删除修改一个指针
双链表删除修改两个指针
单向链表:结点中的指针域只有一个沿着同一个方向表示的链式存储结构。
对于链式分配线性表,整个链表的存取必须是从头指针开始,头指针指示链表中第一个结点的存储位置。同时由于最后一个数据元素,没有直接后继,则线性链表中最后一个结点的指针为空(null)。
使用单向链表时必须完成三步:
创建一个新的结点
为该结点赋一个新值,将当前元素的next域赋给新结点的next域
当前结点的前趋的next域要指向新插入的结点
动态建立单向链表的常用方法有如下两种方法:
尾插入法、头插入法
循环链表:单向链表的最后一个结点的指针把null改为指向第一个结点
循环链表一般以末尾结点的指针作为已知条件。
双(向)链表:在单向链表的每个结点里添加一个指向其直接前趋结点的指针域prior,这样形成的链表中由两条方向不同的链,故称为双(向)链表。
双(向)循环链表
单链表插入修改两个指针
双链表插入修改四个指针
单链表删除修改一个指针
双链表删除修改两个指针