怎么把一个二叉树保存在文件中? 用pascal, 谢谢!

VVER 2001-12-23 02:07:22
帮忙者加分!!
...全文
138 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
VVER 2001-12-25
  • 打赏
  • 举报
回复
感谢各位的答复!!用数组保存简单易用,不过牺牲了空间。其他方法大概还要有待考证吧。但是各位想到没有怎么把树从文件中取出!
rightyeah 2001-12-24
  • 打赏
  • 举报
回复
知道怎么用数组表示二叉树吗?就用数组形式保存就可以了,虽然空间浪费了一点,但是很方便
icessl 2001-12-24
  • 打赏
  • 举报
回复
CSDN 把我贴子的格式搞乱了,55555555
icessl 2001-12-24
  • 打赏
  • 举报
回复
用 根(左子树,右子树) 的ASCII 码形式存储二叉树。比如
A
/ B C
/
D
可以存成 A(B,C(D,))
Francky 2001-12-24
  • 打赏
  • 举报
回复
呵呵! 何谓伪代码?大侠,我怎么知道Node 中有什么元素,要对这个代码细化
gzlucky 2001-12-23
  • 打赏
  • 举报
回复
这个程序绝对有问题。

不可以直接把地址写到文件中,否则下次提取时肯定有问题。你需要写入时把相应的地址写成相对的位置(不是地址),因为尽管你用二叉树存放数据,但在内存中无非是线性存储。你明白吗?
Francky 2001-12-23
  • 打赏
  • 举报
回复
error
遍利整颗把每个结点输出到文件中就可以了。呵呵。给你个伪代码吧。

main()
{
FILE *fp;
fp=fopen("filename","w");
assert(fp);
OutputTrie(pTrie,fp);
fclose(fp);
}

void OutputTrie(trie * pTrie,FILE *fp)
{
if(!pTrie)return;
PrintNode(pTrie,fp);
OutputTrie(pTrie->pLeft,fp);
OutputTrie(pTrie->pRight,fp);
}
void OutputTrie(Node *pData,FILE *fp)
{
fprintf(fp,pData)
}
Francky 2001-12-23
  • 打赏
  • 举报
回复
遍利整颗把每个结点输出到文件中就可以了。呵呵。给你个伪代码吧。

main()
{
FILE *fp;
fp=fopen("filename","w");
assert(fp);
OutputTrie(pTrie,fp);
fclose(fp);
}

void OutputTrie(trie * pTrie,FILE *fp)
{
if(!pTrie)return;
PrintNode(pTrie);
OutputTrie(pTrie->pLeft);
OutputTrie(pTrie->pRight);
}

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧