gpt4 book ai didi

c - 如何在C中将树数据写入文件?

转载 作者:行者123 更新时间:2023-12-02 22:29:49 24 4
gpt4 key购买 nike

我正在查看类似的问题,但没有找到解决方案。我的结构类似于具有 2 个以上节点的树。我还有一个指向根的指针。

typedef struct tree
{
char *name;
struct tree *children
}TREE;

我想将这些数据写入一个文件,但只是感到困惑所以很想得到一些帮助

我想使用:

int writeData(TREE *root , char *filename){

FILE *f = NULL;
int numWritten = 0;

fopen_s(&f , filename, "w+" );
fwrite(root , sizeof(TREE) , ??? , f);

我不知道该写什么,如果我对每个元素都有 child ,那么我必须把它们都扔掉 - 我该怎么做?

最佳答案

嗯,这个问题被称为“序列化结构化数据”——基本上它是解析的对立面。问题是你不能只转储内存中数据的原始二进制数据结构到文件 - 本地址更改时,它在下次启动程序时没有意义。您必须想出一种能够描述您的数据结构并将其写入文件的格式。然后,当然,如果您想稍后从文件中恢复数据结构,您还必须为该格式编写解析器。

我建议使用 JSON - 它是一种轻量级、易于编写和阅读的数据格式,而且它也是通用的 - 非常适合存储简单的抽象数据类型。 Here's my library可以从基本数据类型(例如数组、关联数组、字符串、数字...)生成和解析 JSON

how can If I have children to every element so I beed to go threw them all

对于这个问题:您可能正在寻找 recursion.您需要递归遍历您的数据树,并在您遍历每个节点/叶时生成代表您的数据结构的数据(假设您的数据结构类似于图/树)。

关于c - 如何在C中将树数据写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com