首页文章正文

根据先序中序求二叉树,求二叉树的先序序列代码

二叉树已知前序中序 2023-12-04 18:29 391 墨鱼
二叉树已知前序中序

根据先序中序求二叉树,求二叉树的先序序列代码

根据先序中序求二叉树,求二叉树的先序序列代码

给定二叉树的节点数及其中序遍历和后序遍历,求其前序遍历。 [输入表格]共有三行。 第一行是正整数N,表示节点的数量。 第二行总共有N个正整数,代表二叉树的中序:GDHB|A|ECIFGDHB|A|ECIF。已知AA为根节点,AA的左子树为GDHBGDHB,右子树为ECIFECIF。中序为:BDGH−>B|DGHBDGH−>B|DGH由中序可知:GDHB−>GDH|BGDHB−>GDH|B:B

前序遍历:根节点-->左子树-->右子树。中序遍历:左子树-->根节点-->右子树。基于前序遍历和中序遍历求解二叉树的步骤:①确定根节点。 Thefirstnodeinpre-ordertraversalisdoublepre-ordertraversal,thatis,therootnodeisvisitedfirst,andthentheleftsubtree.In-ordertraversaloftherightsubtreeisthattheleftsubtreeisvisitedfirst,thentherootnode,andtherightsubtreeispassedthroughthepreviousIn-ordertraversalcontinuouslyfindstherootnode,andthenin-ordertraversalfindsitsleftsubtreeandrightsubtree.Finally,youcangetthis

首先,使用两个数组preorder和inorder分别存储用户给定的preorder序列和inorder序列。然后,你必须使用这两个数组来构造↓↓↓如图所示,第一步是从preorder序列中查找。 根(对于每棵树,其根始终为1号。按先序求A为二叉树的根2。中序遍历求A的位置,则CDBFE为其左子树,IHGJ为其左子树。右子树3。同理,B为左子树4的根。中序遍历求B的位置。

∪△∪ 然后通过前序找到第二个节点B。从顺序中可以看出,B的左侧是左子树的节点A,B的右侧是右子树的节点CD。以此类推,我们继续查找前序中的节点。 作为根节点,该节点的左右子节点都是从中序遍历中看到的。因此,如果想根据二叉树的前序和中序遍历找到二叉树的后序遍历,只需要先重新构造二叉树,然后再进行后序遍历即可。 问题关键在于基于前序和中序遍历重建二叉树

后台-插件-广告管理-内容页尾部广告(手机)

标签: 求二叉树的先序序列代码

发表评论

评论列表

快喵加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号