c学习之单向链表的删除与清除操作
Posted 桂月二四
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c学习之单向链表的删除与清除操作相关的知识,希望对你有一定的参考价值。
我们尝试用for循环,来搜索链表中的某个元素。在搜到数据的同时能否将其删除呢?
链表删除的原理:如图所示,只需将待删除节点的上一个节点指向下一个节点即可(部分代码如下)
scanf("%d",&number);
Node *p,*q;
//删除某个元素
for(q = NULL,p = list.head; p ; q=p,p = p->next)
if(number == p->value)
if(q == NULL) list.head = p->next;
else q->next = p->next;
free(p);
break;
下面是清除操作,只需free每一个节点即可
//链表清除
for(p = list.head;p;p=q)
q = q->next;
free(p);
以上是关于c学习之单向链表的删除与清除操作的主要内容,如果未能解决你的问题,请参考以下文章