首页 > 解决方案 > 如何在 C++ 中将二叉树序列化为文件

问题描述

我想将二叉树序列化为 .txt 文件。我正在使用 bfs 遍历树,以便能够乘以 2(或 2+1 对于右子节点)以跳转到节点的左子节点,并且我想按该顺序写入文件。我打算使用 fseek (C++) 将光标指向文件中孩子开始的位置。理想情况下,我希望在每个父母中都有孩子开始位置的位置。我想将我的树写入一个文件,这样我就可以在文件中搜索给定的节点。我不想反序列化它。

外汇。下面是我想要的描述。node1 具有左右子节点的起始位置(请注意,它们只是用于说明目的的随机数),因此我应该能够使用 fseek 设置指针并快速读取子节点的数据。但是,我一直无法找出如何?有这样做的聪明方法吗?即在文件中找到孩子的位置并将它们添加到每个父母。

二叉树:

    1
   / \
  2   3

文件:

//a txt file where each node stores the positions of its children in the file. 
//Format is: (node number: some data, left child position, right child position)
node1: data, 13, 26;
node2: data, 50, 80;
node3: data, 100, 150;
...

标签: c++serializationbinary-treefseek

解决方案


推荐阅读