bst的serialize和unserialize

来源:互联网 发布:拍照翻译软件app 编辑:程序博客网 时间:2024/06/06 03:03

将二叉树串行化输出到文件保存,再从文件中读入重新构造。

遍历方式采用先根遍历的方式。

个人感觉其他的遍历方式不能实现功能,具体原因还没有证明。

void serialize(node *root, ofstream &file){if (!root)return;file << root->dat << " ";serialize(root->l, file);serialize(root->r, file);}node * unserialize(ifstream &file){node * root = NULL;int v;file >> v;build_bst_pre(INT_MIN, INT_MAX, v, root, file);return root;}void build_bst_pre(int min, int max, int &v, node * &root, ifstream &file){if (v < max && v > min){int val = v;root = new node(val);if (file >> v){build_bst_pre(min, val, v, root->l, file);build_bst_pre(val, max, v, root->r, file);}}}

0 0
原创粉丝点击