2025年4月13日 星期日 乙巳(蛇)年 正月十四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

清除链表

时间:01-10来源:作者:点击数:60

链表的结点也是动态分配的,如果在程序结束之前不释放内存,就会造成内存泄漏。因此,编写一个清除链表的函数就显得相当有必要。我们先来分析一下清除这个功能:

  1. 我们必须知道对哪个链表进行操作,所以表头指针head是必须知道的,并且清除整个链表后要将其改为NULL。
  2. 类似于删除结点,我们还需要一个指针p来指向待删除结点。
  3. 类似于删除表头结点的操作,我们仍然要先连后断:先把表头指向头结点的后继,再删除头结点。

下面我们来写一下这个函数:(程序9.6.5)

  • void destroy(node * &head)
  • {
  • node *p;
  • while (head!=NULL)//当还有头结点存在时
  • {
  • p=head;//头结点是待删除结点
  • head=head->next;//先连
  • delete p;//后断
  • }
  • cout <<"The link list has been deleted!" <<endl;
  • }

至此,我们已经学习了链表的所有基本操作。下面来介绍一下数组存储和链表存储各自的优缺点。

虽然很多初学者都认为链表非常难以理解,但是只要掌握了插入删除结点时“先连后断”的原则和如何遍历整个链表,所有的问题就迎刃而解了。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
    无相关信息
栏目更新
栏目热门