前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >由中序遍历和后序遍历还原二叉树_二叉树的中序列

由中序遍历和后序遍历还原二叉树_二叉树的中序列

作者头像
全栈程序员站长
发布2022-10-05 10:37:31
4230
发布2022-10-05 10:37:31
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

二叉树的前序遍历、中序遍历和后序遍历之间还原二叉树

1、概念

(1)前序遍历

a、访问根节点;b、前序遍历左子树;c、前序遍历右子树。

(2)中序遍历

a、中序遍历左子树;b、访问根节点;c、中序遍历右子树。

(3)后序遍历

a、后序遍历左子树;b、后续遍历右子树;c、访问根节点。

2、前序遍历和中序遍历还原二叉树

思想如下:

a、根据前序遍历结果,第一个元素为二叉树的根结点;

b、观察中序遍历结果,根结点左侧的为左子树,若左子树根结点前(后)再无任何元素,则左(右)子树的左分支为空;根结点右侧的为右子树,若右子树根结点前(后)再无任何元素,则左(右)子树的左分支为空;

c、上面的过程是递归的。先找到当前树的根结点,然后划分为左右子树,再进入左子树重复上面的过程,最后进入右子树重复上面的过程,最终还原一棵树。

例:

已知前序遍历:ABDHIEJKCFLMGNO

中序遍历:HDIBJEKALFMCNGO

由中序遍历和后序遍历还原二叉树_二叉树的中序列
由中序遍历和后序遍历还原二叉树_二叉树的中序列

按照上述步骤先画出二叉树,然后在进行求解后序遍历结果。结果为:HIDJKEBLMFNOGCA

练习:

1、前序遍历:GDAFEMHZ

中序遍历:ADEFGHMZ

求得后序遍历结果为:AEFDHZMG

2序遍历:ADCEFGHB

中序遍历:CDFEGHAB

求得后序遍历结果为:CFHGEDBA

3、中序遍历和后序遍历还原二叉树

思想如下:

a、根据后序遍历结果,最后一个元素为二叉树的根结点;

b、观察中序遍历结果,其中根结点左侧为左子树,若左子树根结点前(后)再无任何元素,则左(右)子树的左分支为空;其中根结点右侧为右子树,若右子树根结点前(后)再无任何元素,则左(右)子树的左分支为空;

c、上面的过程是递归的。先根据后序遍历结果找根结点,根结点左侧为左子树,右侧为右子树,再进入左子树重复上面的过程,最后进入右子树重复上面的过程,最终还原一棵树。

例:

已知

中序遍历:HDIBJEKALFMCNGO

后序遍历:

HIDJKEBLMFNOGCA

由中序遍历和后序遍历还原二叉树_二叉树的中序列
由中序遍历和后序遍历还原二叉树_二叉树的中序列

按照上述步骤先画出二叉树,然后在进行求解前序遍历结果。结果为:

ABDHIEJKCFLMGNO

练习:可参考前序遍历和中序遍历的练习

4、前序遍历和后序遍历还原二叉树

已知前序和中序,后序和中序遍历序列之后,可以唯一确定一棵二叉树。但是,只知道前序和后序遍历序列,是无法知道哪个结点是左子树还算右子树。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月14日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二叉树的前序遍历、中序遍历和后序遍历之间还原二叉树
    • 1、概念
      • 2、前序遍历和中序遍历还原二叉树
        • 4、前序遍历和后序遍历还原二叉树
          • 已知前序和中序,后序和中序遍历序列之后,可以唯一确定一棵二叉树。但是,只知道前序和后序遍历序列,是无法知道哪个结点是左子树还算右子树。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档