我有一个用以下结构表示的二叉树:
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;
在树中实际存储数据的好策略是什么?
答案 0 :(得分:1)
序列化它的一种方法是将树转换为数组,并使用"指针"成为数组的索引。然后,您可以按原样将数组写入文件,最好是文本格式,以保持其可移植性。
读取文件时,将其读入数组,然后将数组反序列化为正确的树。