在文件中维护链接列表

时间:2012-04-06 00:22:50

标签: c++ file serialization linked-list

作为编程作业的一部分,我必须在文本文件中维护一个链表。使用Linked List数据结构我很方便,但与C ++中的文件不同。有人可以给我一个关于如何处理它的想法或概述。我应该能够添加或删除链表,也可以添加或删除链表中的节点,否则应该重用在一个链表上删除的空间。每个列表都有一个数字(整数),所有节点都有相同的大小,包含整数。

我的想法是,

1)维护一个带有数字的文件(包含链接的列表编号)

0 - NULL
1 - head_offset for_linked_list_num 1
0 - NULL 
1 - head_offset_for_linked_list_num 3
1 - head_offset_for_linked_list_num 3
1 - head_offset_for_linked_list_num 3

等 其中-1是定位器指示,位置中的1表示第i个位置具有与之关联的位置

2)打开另一个文件并像这样维护链接列表

data next_offset
data next_offset
data NULL

通过这样做,我可以跟踪链表并有效地添加/删除/显示数组。

在C ++中做什么我需要知道和学习的功能。我的时间非常少,我可以将其视为基本功能级别。请指教。提前致谢

2 个答案:

答案 0 :(得分:0)

有关使用问题的功能,您可以咨询: http://www.gnu.org/software/libc/manual/html_node/I_002fO-on-Streams.html#I_002fO-on-Streams 阅读本节可能需要15分钟,并涵盖基础知识。

答案 1 :(得分:0)

1解决方案可能是让每个列表都有自己的文件。该数字将是磁盘上的文件名。在文件内部,第一行始终是头节点。每一行都是两个数据。节点数据后跟下一个节点的文件中的行。这将允许您重用已删除的空白空间。 (下一个节点行的-1将是列表的结尾。例如:

的1.txt:

(data) (next node lines number)
18     2
32     4
4      -1
5      3

所以此链接列表将是18 - > 32 - > 5 - > 4