序列化二叉树?

时间:2014-08-02 17:18:57

标签: c serialization binary-tree

我有一个用以下结构表示的二叉树:

typedef struct _TREENODE
{
     int data;
     struct tree_node *left;
     struct tree_node *right;
} TREENODE;

我试图将其序列化以进行文件存储,但我已经碰到了如何解决这个问题。到目前为止,我所有的都是文件头:

typedef struct _TREEFILEHEADER
{
     short magic; // Identifies the file as a binary tree file
     int size;    // Number of nodes in the tree
} TREEFILEHEADER;

在树中实际存储数据的好策略是什么?

1 个答案:

答案 0 :(得分:1)

序列化它的一种方法是将树转换为数组,并使用"指针"成为数组的索引。然后,您可以按原样将数组写入文件,最好是文本格式,以保持其可移植性。

读取文件时,将其读入数组,然后将数组反序列化为正确的树。