二叉树遍历

二叉树遍历分为——前序遍历、中序遍历和后序遍历。三种遍历方法是根据根节点的位置来命名的。按照写“<”这个符号的壁画顺序的遍历为前序遍历,即:根节点-左子树-右子树;然后按照顺时针转动90°,即中序遍历:左子树-根节点-右子树;然后再顺时针转动90°,即后序遍历:左子树-右子树-根节点。

每种遍历方法个人总结有两种记忆方法。

其中:

前序遍历:

1.从根节点开始,按照先左后右,第一次经过的节点打印出来即可。如图,从根节点开始,第一次经过根节点,打印,也就是A,继续从左子树遍历,第一次经过B,打印;经过D,打印;D为叶子节点,往回走,到B;B打印过继续往回走;到根节点A,A打印过,开始往右;第一次经过C,打印;往左走,第一次经过F,打印;F为叶子节点,返回到C;往右走,到G。完成遍历,所以顺序为A-B-D-E-C-F-G。

2.按照根节点-左子树-右子树遍历即可。如图,从根节点开始,打印A;打印A的左子树B,B为它的子树的根节点;继续打印B的左子树D;D为叶子节点,返回;继续打印B的右子树E。如果把B当做根节点,就是按照根节点-左子树-右子树顺序打印。继续返回到A,把A的左边全都看做是左子树,打印完A和A的“左子树”,该到A的右子树;打印C,C又作为把C当做根节点的子树,打印C的左节点F;返回到C;打印G。遍历完成。所以顺序也为A-B-D-E-C-F-G。

中序遍历:

1.从根节点开始,依然按照根节点-左-右的顺序,第二次经过的节点打印。如图所示,从根节点A开始,经过B;往左遍历,经过D;继续往左遍历,但是D为叶子节点,所以返回到D,打印D;返回到B,B为第二次经过,打印B;然后以B为子树根节点,往右遍历,经过E;然后遍历E的左节点,因为E为叶子节点,所以返回E,第二次经过E,打印E;返回到B,B已经打印过,返回到A;第二次经过A,打印A;继续遍历右子树,经过C;继续走,经过F;继续遍历F的左子树,因为F为叶子结点,返回F,第二次经过,打印F;返回到C,打印C;然后遍历G,一样,打印G。所以最终顺序为:D-B-E-A-F-C-G。

2.按照左子树-根节点-右子树顺序遍历。方法同前序遍历一样,就是把每个“模块”当成整体的左子树或者右子树,然后依次分解即可。最终顺序是:D-B-E-A-F-C-G。

后序遍历:

1.从根节点开始,依然按照根节点-左-右顺序,第三次经过的节点打印。如图,从根节点A开始,经过B;继续往左,经过D;继续往左,D为叶子节点,返回到D,这时是第二次经过D,继续遍历D的右节点,D为叶子节点,返回到D,这时D为第三次经过,打印D;返回到B,第二次经过B;遍历B的右子树,经过E;然后遍历E的左子树,返回到E,这时是第二次经过E;遍历E的右子树,返回到E,第三次经过E,打印E;返回到B,第三次经过B,打印B;返回A,第二次经过A;继续遍历A的右子树,经过C;遍历C的左子树,经过F;F为叶子节点,经过F的左子树,返回到F;经过F右子树,返回到F,第三次经过F,打印F;返回到C;第二次经过C,继续往右走,到G;经过G左子树,返回到G;经过G右子树,返回到G,第三次经过G,打印G;返回到C,第三次经过C,打印C;返回到A,第三次经过A,打印A。遍历完成。最终顺序为:D-E-B-F-G-C-A。

2.按照左子树-右子树-根节点顺序打印即可。原理同上述方法2一样,逐步分解。顺序依然为:D-E-B-F-G-C-A。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双鱼理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值