0
点赞
收藏
分享

微信扫一扫

一看就懂-c语言链表的查找,删除,清空【初阶】

吃面多放酱 2022-01-07 阅读 61

目录

0.引言

1.链表的查找

2.链表的删除 

3.链表的清空

4.全部整合代码:

5.总结


0.引言

先附上已经可以进行打印的链表代码:

1.链表的查找

2.链表的删除

	//链表的删除
	node *q;
	for(q=0,p=head; p; q=p,p=p->next) {
		if(p->value==find) {
			if(q) {
				q->next=p->next;
			} else {
				head=p->next;
			}
			free(p);
			break;
		}
	}
	node *kl;
	for(kl=head; kl; kl=kl->next) {
		printf("%d ",kl->value);
	}

 我们在链表中进行删除,并不是说要删除这个节点中的那个储值的元素,而是要将整个节点删除,同时又要保证前后节点依然能连接起来。

 删除节点,只需要将图中的①直接指向第三个节点就ok了,所以这里我们就需要一个node *q去记录每一次的p,当查找到要删除的数时,让q->next=p->next就ok了。但是这里也要注意一个细节:我们要先判断q是否存在,如果q=0则让head发生改变:head=p->next。最后要free(p)也就是删除这个节点!

后面一部分就是对删除后的链表进行的打印!

3.链表的清空

4.全部整合代码:

运行截图:

 

5.总结

举报

相关推荐

0 条评论