其实也简单,就是自定义malloc函数,使得链表在分配空间时在一个限定区段内(比如0000~FFFF)进行分配,档闹即你已经知道了链表可能存在的最大空间,然后保存时,直接用指针:
fwrite()把整个区段写进去,然后再记录根地址即可;
调用时,先把整个区段读进去,然后把根地址读出来作为根,这样整个链表一共用两个指令就完成读写 *** 作了。
不要觉得有多咐蠢搜无赖可笑,现代 *** 作系统:WINXP / VISTA / WIN7 / LINUX / OS X等等,其快速“休眠”功能完全就是上面的解法,就是把内存和寄存器状态一并写入磁盘,这个方法非常快,而且不会出错,但是衡历能把教你数据结构的老师气得吐血。
有人说这样产生的文件会很大,大怕什么,压缩一下不就行了?反正里面实际上放置的是一个稀疏矩阵,压缩后的结果可能比楼上产生的文件更小。
第一步:创建文件 比如说 file *fp=fopen(……);橘首第二步:写一个循环,把喊租链表的节点一个一郑伍兆个写进文件里。
第三部:记得关闭文件- -
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)