详见图片。望高手相助!
C语言中如何将一个链表保存为文件?
答案:4 悬赏:70
解决时间 2021-03-05 08:32
- 提问者网友:乏味沐染
- 2021-03-04 22:16
最佳答案
- 二级知识专家网友:飘零作归宿
- 2021-03-04 22:48
1、基本思想是通过遍历的方式存储(数据,不存储指针域),还原的时候,根据存储的方式读取数据,再建链表。
2、比如单链表,一次遍历可以得到一个一维数组,存储该数组即可。读取时,依次读取这一数组,重建时,数组的第一个元素的next是第二个元素,第二个next是第三个元素。再比如复杂一点的二叉树,采用链表的形式表示,要存储该二叉树,首先遍历,比如采用中序遍历,得到一个一维数组,保存之。还原的时候,依据中序遍历的原则,可以还原(重建)出二叉树。
2、比如单链表,一次遍历可以得到一个一维数组,存储该数组即可。读取时,依次读取这一数组,重建时,数组的第一个元素的next是第二个元素,第二个next是第三个元素。再比如复杂一点的二叉树,采用链表的形式表示,要存储该二叉树,首先遍历,比如采用中序遍历,得到一个一维数组,保存之。还原的时候,依据中序遍历的原则,可以还原(重建)出二叉树。
全部回答
- 1楼网友:不羁的心
- 2021-03-05 01:38
随便说说
你可以链表的每一个结点,保存为一行.或者有一个特殊的符号来分割不同的结点,如果结点内有不同意义的数据,也可以用特殊的符号来分割,
这里要说明 因为c语言支持的只有流试文件 所以在文件存储链表的时候只能存储单向链表
- 2楼网友:魅世女王
- 2021-03-05 00:21
就是按照结构
typedef struct stk{
int k;
struct stk *next;
}STK;
STK *cur = &mystruct;
for(cur=mystruct; cur; cur=cur->next)
{
fwrite(cur, 1, sizeof(STK), fp);
}
读出来是相反的过程
记录1
记录2
记录3
- 3楼网友:魅世女王
- 2021-03-05 00:09
第一步:创建文件 比如说 file *fp=fopen(……);
第二步:写一个循环,把链表的节点一个一个写进文件里。
第三部:记得关闭文件- -
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯