在程序里构造的二叉树,其实存在于内存当中。逻辑结构可以用纸笔画出。
很多时候,我们希望把二叉树以文件的形式记录下来,这样一来,下次想重构二叉树,
我们就可以凭借文件中的记录将整棵二叉树还原出来。
把二叉树记录成文件的过程,叫做二叉树的序列化过程。(亦称二叉树的持久化过程)
把文件中的记录还原成二叉树的过程,成为二叉树的反序列化过程。
问题1:
“#”表示节点为空,值不存在;“!”表示一个值的结束
value=["12","3","#","#","#"]
Str=12 ! 3 ! # ! # ! # !
!用来标记一个值的结束,如果不标记的话,会出现歧义。
问题2:一棵二叉树通过先序遍历的得到的结果,如何进行反序列化。
遍历到节点3的左半边的孩子的时候,它为空,那么就没有子孩子,进入右边的子孩子,它为空,那么他就没有子孩子,所以回到12,遍历12的右孩子,此时没有多余的字符可以使用,所以可以结束了。