2.3单链表单链表的结构2.3.1单链表是构成链表的每个结点只有一个指向直接后继结点的指针。单链表中每个结点的结构:指针域数据元素域或elementnext
2.3.1 单链表的结构 单链表是构成链表的每个结点只有一个指向直 接后继结点的指针。 数据元素域 指针域 或 element next 单链表中每个结点的结构: 2.3 单链表
头指针、头结点和首元结点的区别示意图如下:headaoaian-1首元结点头结点头指针首元结点是指链表中存储线性表首元素a。的结点头结点是在链表的首元结点之前附设的一个结点,它不计入表长度。头指针是指向链表中第一个结点(或为头结点、或为首元结点)的指针;headaoalan-1
头指针、头结点和首元结点的区别 头指针 头结点 首元结点 首元结点是指链表中存储线性表首元素a0的结点。 头结点是在链表的首元结点之前附设的一个结点,它不计入 表长度。 头指针是指向链表中第一个结点(或为头结点、或为首元 结点)的指针; 示意图如下: head a0 a1 . an-1 ^ head a0 a1 . an-1 ^
讨论1:在链表中设置头结点有什么好处?答:头结点即在链表的首元结点之前附设的一个结点,该结点的数据域可以为空,也可存放表长度等附加信息,其作用是为了对链表进行操作时,可以对空表、非空表的情况以及对首元结点进行统一处理,编程更方便讨论2.如何表示空表?答:不带头结点时,当头指针的值为空时表示空表:带头结点时,当头结点的指针域为空时表示空表头指针头指针头结点Λhead有头结点头结点不计入链无头结点表长度!
答: 讨论1. 在链表中设置头结点有什么好处? 讨论2. 如何表示空表? 头结点即在链表的首元结点之前附设的一个结点,该结 点的数据域可以为空,也可存放表长度等附加信息,其作用是 为了对链表进行操作时,可以对空表、非空表的情况以及对首 元结点进行统一处理,编程更方便。 答: 不带头结点时,当头指针的值为空时表示空表; ^ 头指针 无头结点 带头结点时,当头结点的指针域为空时表示空表。 头结点不计入链 表长度! ^ 头指针 头结点 有头结点 head
单链表有带头结点结构和不带头结点结构两种两种单链表的比较:从线性表的定义可知,线性表要求允许在任意位置进行插入和删除。当选用带头结点的单链表时,插入和删除操作的实现方法比不用带头结点单链表的实现方法简单
两种单链表的比较: 从线性表的定义可知,线性表要求允许在任意位置 进行插入和删除。当选用带头结点的单链表时,插入和 删除操作的实现方法比不用带头结点单链表的实现方法 简单。 单链表有带头结点结构和不带头结点结构两种
不带头结点的单链表:data nextheadaAaoai-ln-s.next=p.nextobjp.next=sS如果在首元素之前插入obi,则s.next-headhead=s
0 head a ai . n−1 a ∧ s obj . i−1 a p data next 如果在首元素之前插入obj,则 s.next=head head=s s.next=p.next p.next=s 不带头结点的单链表: