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
- C语言--链表的销毁
- C语言链表(带头节点的链表)的文件读写与销毁
- C语言中栈帧的创建与销毁
- 动态链表的增删改查,打印销毁等基本操作及代码模块化(完整C语言代码!)
- 链表的销毁
- [数据结构]c语言实现链栈的入栈,出栈,清空,销毁等操作
- C语言:单链表的创建,打印及销毁
- C语言多线程基础-01-线程的创建与销毁
- 链表操作 (C语言)插入,合并,销毁,删除,冒泡排序
- [数据结构]c语言实现顺序栈的入栈,出栈,清空,销毁等操作
- 【C语言】栈和栈帧,以及栈帧创建和销毁的过程
- 清空链表跟销毁链表的区别
- 算法导论 之 红黑树 - 打印、销毁 - 非递归[C语言]
- 【C语言】C语言实现简单的链表
- 单向链表的操作:创建,删除,插入,销毁,查找
- C++对象链表的创建与销毁
- 链表创建,使用,销毁
- 【C++】Windows线程的创建、执行、互斥、同步、销毁
- 单片机嵌入式C编程获取高低字节
- 设计模式练习(8)——组合模式
- tcp time_wait 状态存在的原因
- 我的2014,读多学少,想多做少
- 安卓通讯之《蓝牙单片机通讯助手》②扫描设备、连接设备和双向通讯。
- C语言--链表的销毁
- 解决IE浏览器下select下拉框默认样式问题
- idea上传项目到github上面
- Codeforces Round #392 (Div. 2)
- Android多媒体技术(二)浅析Camera视频实时采集中涉及的参数配置
- Android实现WebActivity初始化一次
- 面向业务的立体化高可用架构设计
- C# windows服务
- jzoj C组 2017.1.20 比赛