【B树】怎么把一颗B树以二进制的方式写入文件并恢复?

一叶箛星墜涳城丶 2015-11-10 06:54:28

B树类结构如下

class BTree
{
public:
int keyNum; // 结点关键字数量
int* pKey; // 指向关键字数组的指针
BTree* pChild[MAX_CHILD_NUM]; // 存储子结点指针的数组
bool isLeaf; // 叶子节点标志
}


怎么把下面的B树全部结点写入文件?


每个结点都是一个类对象,以什么样的顺序把这些结点用二进制方式写入文件?
从文件二进制读出恢复成原来的B树又该怎么恢复?
...全文
136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-11-11
  • 打赏
  • 举报
回复
搜“序列化、反序列化”
lm_whales 2015-11-10
  • 打赏
  • 举报
回复
抱歉,1楼看错了 , B树,B+,B-树,其实就是,操作系统处理目录文件的一种数据结构。 完全可以采用目录的方式存储 每个目录项下可以存储若干子目录 用偏移量作为索引 每个目录项长度相同
  • 打赏
  • 举报
回复
引用 1 楼 lm_whales 的回复:
完全二叉树,按照顺序,即可 不完全二叉树,如果可以设置 非法值作为NULL节点值,也可以顺序存储 否则, 可以在磁盘上按照内存中的 树结构存储, 指针改成偏移量即可。 也可以设定一个方式存储,如XML,ini 都可以存储树结构 别的可以仿照MS资源文件 中对话框资源格式存储 也可以编码存储
没听懂,能说的具体点?
lm_whales 2015-11-10
  • 打赏
  • 举报
回复
B 树可以按照,文件目录方式存储
lm_whales 2015-11-10
  • 打赏
  • 举报
回复
完全二叉树,按照顺序,即可 不完全二叉树,如果可以设置 非法值作为NULL节点值,也可以顺序存储 否则, 可以在磁盘上按照内存中的 树结构存储, 指针改成偏移量即可。 也可以设定一个方式存储,如XML,ini 都可以存储树结构 别的可以仿照MS资源文件 中对话框资源格式存储 也可以编码存储

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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