首页 > 其他 > 详细

带头节点的链表和不带头结点的链表有何不同

时间:2014-04-15 06:35:55      阅读:317      评论:0      收藏:0      [点我收藏+]

  单链表是一种最为基本的数据结构,常用的单链表又分为带头结点和不带头结点两种。从线性表的定义可以知道,线性表要求允许在任意位置进行插入和删除操作。所有的链表都有一个头指针head,带头结点的链表中head的数据项为空。接下来具体分析。

1.带头节点的链表的插入,首先使用临时变量p等于要插入之前的节点(不管具体的插入位置),之后不管要插入的节点x是插到链表头还是插到链表的其他位置都是如下语句:x->next = p->next;p->next = x;

2.不带头结点的链表的插入,若要插到链表的开头则

x->next = head->next;
head = x;//这里不再是head->next = x
若插到链表的其他位置则
p = 插入之前的节点
x->next = p->next;
p->next = x;

3.带头结点的链表的删除,不解释,同样不存在删除位置的差异。

4.不带头结点的链表的删除,删除第一个节点时,head=head->next。删除其他节点时,head的值不会改变。


综上所述,带头节点的单链表,不论删除和插入的位置如何,不需要修改head的值,不带头结点的单链表则需要修改head的值。所以单链表一般为带头结点的单链表


带头节点的链表和不带头结点的链表有何不同,布布扣,bubuko.com

带头节点的链表和不带头结点的链表有何不同

原文:http://blog.csdn.net/wanghao109/article/details/23679513

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!