销毁链表

#摘自《妙趣横生的算法(c语言版)》

在链表使用完毕后建议销毁它,因为链表本身会占用内存空间,如果一个系统使用很多的链表,而使用完毕后又不及时的销毁它,那么这些垃圾空间积累很多,最终可能导致内存泄露甚至程序崩溃,因此应该养成及时销毁不用链表的习惯。

销毁一个链表list的代码描述

void destorylinklist(linklist *list){

  linklist p,q;

  p=*list;

  while(p){

  p=q->next;

  free(p);

 }

*list-NULL;

}

函数destorylinklist()的作用是销毁一个链表list,它包括以下步骤:

1,首先将*list的内容赋值给p,这样p也指向链表的第一个结点,成为链表的表头

2,然后判断只要p不为空,就将p指向的下一个结点的指针赋值给q,并应用函数说free ()释放掉p所指向的节点,p再指向下一个节点,如此循环,直到链表为空为止。

3,最后将*list的内容置为null,这样主函数中的链表list就为空了,防止了list变为野指针,而且链表在内存中也被完全的释放掉了。

 

posted on 2013-09-30 10:50  语辰  阅读(1364)  评论(0编辑  收藏  举报