请教:树的存储保存
想把一个树保存在一个文件中,难以确定文件的结构,求教。
比如文件定义成:
v1.0 HTREE_FILE
Node_begin
key
Child[0] Child[1] Child[2].....
Node_end
....
其中Child[]应该存储什么?指针,索引,or something else
如果这种结构不好,因该怎样定义,可以方便的读出并构造树---树是无序的.
问题点数:50、回复次数:4Top
1 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2003-04-01 12:00:52 得分 50
很容易就可以使用递归调用方式完成
SaveTree (File * pFile, Tree * pTree)
{
pFile->Write(pTree->当前数据内容)
pFile->Write(子树的数目);
for (int i=0; i<子树数目; i++)
SaveTree(pFile, pTree->child[i]);
};
ReadTree( File * pFile, Tree * pTree )
{
pFile->Read(数据内容)
pTree->当前数据内容 = 数据内容;
pFile->Read(子树数目);
for (int i=0; i<子树数目; i++) {
pTree->child[i] = new Tree;
ReadTree(pFile, pTree->child[i]);
};
};
Top
2 楼haigon(龙笑海)回复于 2003-04-01 12:12:23 得分 0
不好意思,我想复杂了Top
3 楼haigon(龙笑海)回复于 2003-04-01 12:20:46 得分 0
经你提示: 我因该先保存树的遍历顺序。
如此定义即可:
v1.0 HTREE_FILE
先根通过|中根通过|后根通过| 深度优先.......
key
ChildNum
Child[0]
Child[1]
Child[2].....
....
Top
4 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2003-04-01 17:45:00 得分 0
是啊
Top




