二叉树打印

本文详细解析了二叉树的层次遍历算法,通过实例演示如何使用队列实现换行处理,以及二叉树的序列化与反序列化方法,包括先序、中序、后序和层次遍历的不同应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二叉树层次遍历

在这里插入图片描述
已知头结点head,进行层次遍历,需要一个last节点和nlast节点。难点是知道何时换行。
last节点:表示正在打印的当前行的最右节点
nlast节点:表示下一行的最右节点
last==nlast时就换行
我们需要一个队列queue来存储节点

在这里插入图片描述
压入头结点1,last=1,nlast=1;
弹出1,2进站,nlast=2
nlast=2,在压入3,last=3,nlast=3;
此时last等于弹出的1,所以换行,last=nlast;
弹出2,压入4,nlast=4;
弹出3,压入5,nlast=5;
压入6,nlast=6;
此时last等于弹出的3,所以换行,last=nlast;
弹出4,空空;
弹出5;
压入7,nlast=7;
压入8,nlast=8;
弹出6;
此时last==弹出的6,所以换行,last=nlast;
弹出7;
弹出8;

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

序列化:将二叉树变成字符串存储
反序列化:将字符串重构成二叉树
在这里插入图片描述

序列化方法:
1.先序遍历:

不用特殊字符表示节点值结束的话会产生歧义。
在这里插入图片描述

2.中序遍历
3.后序遍历
4.层次遍历
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值