二叉树层序序列化与反序列化

本文介绍了二叉树的层序序列化和反序列化方法,包括序列化的要求和实现步骤。层序序列化是按照层次遍历的方式,将二叉树节点值以特定格式保存为字符串。反序列化则是根据序列化的字符串重新构建二叉树。文中通过队列作为辅助数据结构,详细阐述了正序列化和反序列化的具体过程,并提供了代码示例。
摘要由CSDN通过智能技术生成

二叉树层序序列化与反序列化
在这里插入图片描述
二叉树的正序列化:把二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。

序列化可以基于 先序、中序、后序、层序 的方式来进行遍历。

层序序列化要求:

1、从二叉树的根节点开始,逐层遍历

2、数据之间使用逗号“,”隔开

3、树的节点中,存在的节点将值(51、7、13等)存入数组中即可

4、结尾如果有不存在的节点,则全部忽略

根据规则,忽略掉结尾不存在的节点后,字符串应该为"51,7,13,5,26,17,9"

一、正序列化

根据要求我们可以看出是用层序排序法来序列化,推荐用队列来存储节点。

实现步骤:

1.首先我们先将树的根节点(51)存入队列
在这里插入图片描述
2.利用队列先进先出原理取出根节点(51)
在这里插入图片描述
3.此时再存入根节点的左右子节点(左子节点:7,右子节点:13),那么队列中就有两个节点(7࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值