二叉树序列化和反序列化:
预期目标:
序列化:将链表化为类似于 1_ 2_#_ #_ 3 _ #_ #_的形式,#代表指针指向为空。
反序列化:将序列化后的数据还原为二叉树
要点:
1.数据类型转换:int -> string 、string -> int 分别用to_string 和 atoi(x.c_str())实现
2.序列化后数据用队列储存,不使用下标取值,方便运用递归方法。
3.将string数据分解为子string问题。
代码:
参考左神代码编写
#include <iostream>
#include <string>
#include <queue>
using namespace std;
struct Node
{
int value;
Node* left;
Node* right;
Node() : value(0), left(nullptr), right(nullptr) {
}
Node(int x) : value(x), left(nullptr), right(nullptr) {
}
Node(int x, Node* left, Node* right) : value(x),