c语言中,动态链表可不可以用二进制格式保存到文件中?
展开全部
可以使用二进制格式存储。
需要注意的是,链表的指针域,可以不存入二进制文件,或者说,存进去也没有用处。
指针域的值,是指向其它单元的地址值,而地址值是动态分配的,从文件中读出时,该段内存很可能已经失效,所以再直接使用存储值就会出问题。
正确的做法是:
1 将链表按节点存放到二进制文件中,是否存储指针域均可。
2 读取时,每次读取一个节点的数据,指针域置空;
3 将每个节点的数据,按照存储的顺序(从头到尾,或从尾到头),重新分配节点资源,并形成有效链表。
需要注意的是,链表的指针域,可以不存入二进制文件,或者说,存进去也没有用处。
指针域的值,是指向其它单元的地址值,而地址值是动态分配的,从文件中读出时,该段内存很可能已经失效,所以再直接使用存储值就会出问题。
正确的做法是:
1 将链表按节点存放到二进制文件中,是否存储指针域均可。
2 读取时,每次读取一个节点的数据,指针域置空;
3 将每个节点的数据,按照存储的顺序(从头到尾,或从尾到头),重新分配节点资源,并形成有效链表。
2015-12-21
展开全部
动态链表 恐怕不行吧。。
假设你要生成一个链表 一个个元素往表里面装
然后你要删掉中间一个元素 链表结构你中间删除第i元素 只要让第i-1个元素指到第i+1个元素就行 但文件里 就没有那么简单了
之前保存了 然后中间删掉一段 你得把后面那一片都移动上来 并不是把中间那一片存贮区域赋空就可以 得把文件打开,一系列操作以后再存贮
动态链表的存储罗辑和存一个文件不太兼容吧
数组倒是和兼容
个人见解 仅供参考
假设你要生成一个链表 一个个元素往表里面装
然后你要删掉中间一个元素 链表结构你中间删除第i元素 只要让第i-1个元素指到第i+1个元素就行 但文件里 就没有那么简单了
之前保存了 然后中间删掉一段 你得把后面那一片都移动上来 并不是把中间那一片存贮区域赋空就可以 得把文件打开,一系列操作以后再存贮
动态链表的存储罗辑和存一个文件不太兼容吧
数组倒是和兼容
个人见解 仅供参考
追问
噢噢 。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询