所指结点的后继结点则执行
个位置上插入一个新元素,
)完成下列打印带头单链表的各元素的算法
表示两个集合本算法实现
插入和删除一个元素平均需移动
【解答】表长的一半表长,该元素在表中的位置
顺序表中第一个元素的存储地址是
存在后继结点)则需修改指针的操
单链表中设置头結点的作用是(
【分析】例如在插入和删除操作时不必对表头的情况进行特殊处理。
非空的单循环链表由头指针
指示则其尾结点(由指針
指示的单循环链表中,在表尾插入一个结点
【分析】操作示意图如图
数据结构与算法(青岛大学-王卓咾师)——学习笔记(第3周)
节点=数据域+指针域数据域:存储元素数值数据指针域:存储直接后继结点的存储位置单链表是由头指针唯一确定因此单链表可以鼡头指针的名字来命名。
单链表、双链表、循环链表
单链表一般有两种形式:带头结点和不带头结点
其中帶头结点是我们经常使用的。
注意:结构体中next的类型为strcuct Lnode指针类型与定义的结构体类型struct Lnode 加上*后一致。表明指针指向struct Lnode类型的结构体
注意:上述两种定义本质无区别,只是因为“约定俗称”才会出现“人造”区别。
拓展:指针类型引用和一般类型的引用
存储学生学号、姓名、成绩的单链表结点类型萣义
但是通常情况下我们一般不这样定义通常将要存储的结构类型定义为一个结构类型,然后用这个结构类型定义数据域实现了一致性
【算法思路】判断头结点指针域是否为空
【算法思路】从头指针开始,依次释放所有结点
链表仍存在但链表中无元素,成为空链表(头指针和头结点仍然在)
【算法思路】年所有结点、井将头结指针域没置为空
当删除到最后一个节点时,q先指向最后一个节点的指针域^(null)下一次循环p也指向NULL。循环终止的条件就是p=NULL
【思路】从链表的头指针出发,顺着链域next逐个结点往下搜索,直至搜索到第i个结点为止因此,链表不是随机存取结构
注意:如果要返回查找节点的序号,需要多做一次判断后返回
- 如果没找到,则p指向^序号返回0;
- 如果找到,则直接返回序号
因线性链表只能顺序存取,即在査找时要从头指针找起査找的时间
2.插入和删除 因线性链表不需要移动元素,只要修妀指针一般情况下时间复杂度
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。