C语言--链表的销毁

来源:互联网 发布:游戏测试软件 编辑:程序博客网 时间:2024/05/22 03:21


                  链表销毁的基本思想


上次说了链表的构建,现在呢链表的销毁,他要是销毁,必须释放所有成员的内存

空间,现在一个问题摆在面前,到我们是从前往后删,还是从后往前删?

如果从后往前删,我们先要用指针指向最后一个结构体的前驱结点的next的值,修改

前驱结点的next的值为空,然后用指针释放最后一个结构体的空间,但是这里最后一

个结构体的前驱结点的next还得你写程序判断,相对从前往后删来说比较麻烦,所以

我们用的是从前往后删。





具体步骤


先让p指向,头结点后面那个第一个有效节点。  (红色箭头的p


然后把头结点的next值修改成,现在第一个有效节点的next成员的值(蓝色的箭头


然后再释放p,这样不会使链表中途断开,一直删完。当删到最后一个时,head->next变为NULL,销毁正式结束。


                              程序的实现


void destroy(point *head){point *p;while (head->next){p = head->next;head->next = p->next;free(p);}}


0 0
原创粉丝点击