中易网

C语言中如何将一个链表保存为文件?

答案:4  悬赏:70  
解决时间 2021-03-05 08:32
详见图片。望高手相助!



最佳答案
1、基本思想是通过遍历的方式存储(数据,不存储指针域),还原的时候,根据存储的方式读取数据,再建链表。
2、比如单链表,一次遍历可以得到一个一维数组,存储该数组即可。读取时,依次读取这一数组,重建时,数组的第一个元素的next是第二个元素,第二个next是第三个元素。再比如复杂一点的二叉树,采用链表的形式表示,要存储该二叉树,首先遍历,比如采用中序遍历,得到一个一维数组,保存之。还原的时候,依据中序遍历的原则,可以还原(重建)出二叉树。
全部回答
随便说说 你可以链表的每一个结点,保存为一行.或者有一个特殊的符号来分割不同的结点,如果结点内有不同意义的数据,也可以用特殊的符号来分割, 这里要说明 因为c语言支持的只有流试文件 所以在文件存储链表的时候只能存储单向链表
就是按照结构 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
第一步:创建文件 比如说 file *fp=fopen(……); 第二步:写一个循环,把链表的节点一个一个写进文件里。 第三部:记得关闭文件- -
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
复式楼,是不是都在顶层
E(sn4+/sn2+)=0.154v E(fe3+/fe2+)=0.77v, 计
我们小区到现在都没有社区管,办什么都不方便
编一程序(不用string函数)比较两个字符串大
个人征信中的信用卡逾期记录有可能清除吗
去邢台英谈村有直达的公交车吗
请问晚上睡觉客厅通风好不好
我是混合性皮肤,脸上毛孔大,兰芝的隔离霜,植
小奴才在前面生生唤后唐来了我王氏兰英是哪出
从胜山到余姚滴滴打车要多少钱
2015白百何快乐大本营唱的歌名叫什么
opp01107手机有分移动电信吗
广西砂糖橘,和马水桔主要销往哪里
QQ三国鉴天符有什么用
冰箱保鲜区会制冷但里面的灯不亮是什么原因
推荐资讯
请问从广东省清远市到海南省海口市有几种途径
长安cs15叶子板多少钱
怎么调画质会清楚一点,绝地求生大逃亡,我的
第一会所邀请码啊 抢不到啊
至今没玩过FF5,貌似GBA和SFC都有汉化版,请
合家欢红木在什么地方啊,我要过去处理事情
你好 请问你参与过银川欣兰广场那边的投资吗
谁知道后视镜曲面和平面有什么区别?新手适合
邢台市规划设计研究院巨鹿分院在哪里啊,我有
高中会考错过了还能不能去补考?
《同学聚会》作文50字
中国农业银行(东街支行)在哪里啊,我有事要去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?