扩展二叉树(#号法)先序和后续可确定二叉树,中序不可

在我们动态的创建二叉树的时候,一般会选择#号法,本文主要是讲解为什么扩展二叉树的先序和后续都可以唯一确定一颗二叉树,而中序不可以。

我们在讲解扩展二叉树之前,先来回顾下,非扩展的二叉树,非扩展的二叉树,我们在已知前序,中序,后续任意一个遍历序列的时候,都是不能唯一确定一个二叉树的,因为如果知道前序和后续,只是知道哪个是跟结点,但是无法区分左右孩子,而知道了中序遍历,不知道头结点,区分左右子树也没有意义,

所以一定是前序+中序    或者后续+中序的组合才可以。

而扩展二叉树的意思是把一棵树的左右孩子都补全,用#号表示,这样的话代表每一个结点,除了补全的#结点,其他结点一定都有两个孩子,那这样的话

前序遍历  就相当于普通遍历的前序+中序       后续遍历  就相当于普通遍历的 后续+中序(具体原理后面分析)

前面是做了一些铺垫,现在言归正传,开始讲解,首先我们有如下的树结构:

然后我们对这棵二叉树进行扩展,形成扩展二叉树:如下图所示:

然后我们对扩展二叉树进行先(根)序遍历,得到结果如下:a b # d # # c # #

然后下面就是重点内容,为什么根据这个先序遍历,就可以唯一确定一个二叉树

继续分析扩展二叉树的后根序遍历,遍历结果如下:# # # d b # # c a

为什么根据这个先序遍历,就可以唯一确定一个二叉树呢,具体解释如下图所示:

 

  • 21
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值