首页 > 编程知识 正文

怎样遍历二叉树得到有序序列,中序遍历二叉树的算法流程图

时间:2023-05-04 10:08:12 阅读:171600 作者:2085

实际上,如果知道其中任意2个扫描的顺序,就可以推定剩下的1个扫描方式的顺序。 在这里,我们只是:

知道前相横移和中相横移,以后相横移为例,其他组合方法原理也是一样的。 要完成此任务,首先要利用以下特征:

特性a,对于先前的遍历,初始必须是根节点;

特性b,对于后续遍历,最后一个必须是根节点;

特性c利用前序或后序遍历确定根节点,中序遍历中将根节点两侧分为左右子树;

特性d相当于对左边的子树和右边的子树分别进行前面三点的分析和分割,进行递归,我们可以重构完整的二叉树;

举个例子吧。 假设:

前扫描顺序为: CABGHEDF

中顺序扫描的顺序为: GHBACDEF

第一步,根据特性a可知根节点为c,然后根据特性c可知左子树为: GHBA,右子树为: DEF。

C

/

GHBA DEF

然后取出左子树,左子树的前相遍历为ABGH,中相遍历为GHBA,根据特性a和c可知,左子树的父节点为a,且a中没有右子树。

C

/

A DEF

/

GBH

在步骤3中,使用同样的方法,假设将前序设为BGH,将中序设为GHB,将父节点设为b,将GH设为左子树,没有右子树。

C

/

A DEF

/

B

/

GH

步骤4、前序为GH,中序为GH,所以g为父节点,h为右子树,没有左子树。

步骤C/ A DEF/B/G H,返回右边的子树,其前序为EDF,中序为DEF,仍然根据特性a和c,父节点为e,左右节点为d和f。

C

/

A E

//

B D F

/

g

(到此为止,我们得到了这个完整的二叉树。 因此,后续遍历为: HGBADFEC

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。