白话篇:利用二叉树先序/中序/后序确定二叉树求法分析

前篇:

二叉树的遍历:

二叉树的遍历是指按照一定次序访问二叉树中所有的节点,并且每个节点仅仅能够访问一次。这也是二叉树最基本的运算。

常用的3钟递归遍历方式:

1.先序遍历,过程:

(1)访问根节点

(2)访问左子树

(3)访问右子树

2.中序遍历,过程:

(1)访问左子树

(2)访问根节点

(3)访问右子树

3.后序遍历:
(1)访问左子树

(2)访问右子树

(3)访问根节点

为了能够更好的理解到这三种遍历方式,我们画图来模拟一下:

对于一颗二叉树:



1.先序遍历结果:ABDGCEF

2.中序遍历结果:DGBAECF

3.后序遍历结果:GDBEFCA


中篇:

1.如何利用先序和中序确定一颗二叉树

首先我们先证明一下可行性:对于任何n(n>0)个不同节点的二叉树,都可以由它的中序序列和先序序列唯一确定:

采用数学归纳法证明:

当n=0时,二叉树为空,结论正确。

假设:节点数小于n的任何二叉树,都可以由它的中序和先序序列唯一确定。

若一棵树具有n个节点,其先序序列为:a0,a1,a2……an-1,中序序列:b0,b1,b2……b

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于给定的二叉树,按照先序中序后序遍历的顺序来描述如下: 先序遍历顺序(根左右):ab cde fg 先序遍历的顺序是,首先访问根节点a,然后按照从左到右的顺序遍历左子和右子。对于当前的二叉树,根节点为a,首先访问a。然后按照从左到右的顺序遍历左子和右子,左子为b,右子为cde fg。继续遍历左子b,得到先序遍历结果ab。然后遍历右子cde fg,先访问c,再访问d,再访问e,最后访问f和g。所以最终的先序遍历结果为ab cde fg。 中序遍历顺序(左根右):b a c d e f g 中序遍历的顺序是,首先按照从左到右的顺序遍历左子,然后访问根节点,最后按照从左到右的顺序遍历右子。对于当前的二叉树,首先按照从左到右的顺序遍历左子,得到中序遍历结果b。然后访问根节点a。最后按照从左到右的顺序遍历右子,得到中序遍历结果cde fg。对于右子cde fg,首先按照从左到右的顺序遍历左子,得到中序遍历结果c。然后访问根节点d。最后按照从左到右的顺序遍历右子,得到中序遍历结果e fg。对于右子e fg,首先按照从左到右的顺序遍历左子和右子,得到中序遍历结果e f g。所以最终的中序遍历结果为b a c d e f g。 后序遍历顺序(左右根):b e f g d c a 后序遍历的顺序是,首先按照从左到右的顺序遍历左子和右子,最后访问根节点。对于当前的二叉树,首先按照从左到右的顺序遍历左子和右子,得到后序遍历结果b e f g d c。最后访问根节点a。所以最终的后序遍历结果为b e f g d c a。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值