二叉树的序列化和反序列化

在程序里构造的二叉树,其实存在于内存当中。逻辑结构可以用纸笔画出。

很多时候,我们希望把二叉树以文件的形式记录下来,这样一来,下次想重构二叉树,

我们就可以凭借文件中的记录将整棵二叉树还原出来。

把二叉树记录成文件的过程,叫做二叉树的序列化过程。(亦称二叉树的持久化过程)

把文件中的记录还原成二叉树的过程,成为二叉树的反序列化过程。



问题1:



“#”表示节点为空,值不存在;“!”表示一个值的结束



value=["12","3","#","#","#"]

Str=12 ! 3 ! # ! # ! # !

!用来标记一个值的结束,如果不标记的话,会出现歧义。


问题2:一棵二叉树通过先序遍历的得到的结果,如何进行反序列化。


遍历到节点3的左半边的孩子的时候,它为空,那么就没有子孩子,进入右边的子孩子,它为空,那么他就没有子孩子,所以回到12,遍历12的右孩子,此时没有多余的字符可以使用,所以可以结束了。



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容