2016 - 2024

感恩一路有你

数据结构中序遍历例题 数据结构中已知前序序列和中序序列,怎么得出后序序列?

浏览量:1712 时间:2021-03-11 04:12:06 作者:admin

数据结构中已知前序序列和中序序列,怎么得出后序序列?

首先要明确前序、中序、后序的遍历顺序:前序:父节点、左子节点、右子节点;中序:左子节点、父节点、右子节点;后序:左子节点、右子节点、父节点;首先根据前序遍历,确定整个二叉树的根节点(前序的第一个节点),然后通过中间序遍历,将整个二叉树按根节点直接划分为两个子树。

此时,按照预序和中间序一步一步地绘制整个二叉树并不困难。然后我们可以编写后序遍历序列。例如:已知二叉树的前序遍历序列为bc D E F H,中序遍历序列为bd C E a H F,写后序遍历序列。根据预序,树的根节点是a;根据中间序和根节点,B、D、C、E在根节点的左子树上,h、F在根节点的右子树上;通过逐步分析子树,树是a/╲B F/╲C h/╲D E,后跟decbhfa

例如

中间顺序:dgbaechf//左根右根

最后顺序:gdbehfca//左根和右根

(1)determine root

get

中间顺序:(DGB)a(echf)最后顺序:(GDB)(ehfc)a

(2)determine left node

从上面知道,左节点没有节点

(3)确定右节点

中间顺序[(E)C(HF)]最后顺序:[(E)(HF)C]

确定整个树为

数据结构中序和后序怎么画二叉树?

找到根节点(通过post顺序),然后把中间顺序序列分成两段,左子树和右子树,然后递归地,在分割时,可以用中间顺序的左子树和右子树的节点数来确定后顺序序列Dbeca

1中每段的节点数。最后一个节点必须是根节点,在本例中是a

2。中间顺序对应的根是a,所以a是根,BD是左子树,CE是右子树

3。左子树中有两个节点,右子树中有两个节点,因为后一顺序遍历是先左后右,所以后一顺序被分成两段,左dB,右EC

4。因此,左子树的根被确定为B,右子树的根被确定为C

5,顺序是左子树部分BD(B是根),其右子树是D,左子树部分根是C,右子树部分根是e

是前序ABCDE,首先恢复二叉树,然后遍历后序序列得到后序序列。恢复过程如下:首先,前序序列的第一根是根。在得到中间顺序后,中间顺序可分为三部分:左子树的中间顺序、右子树的根和中间顺序。然后,将左子树的中阶和右子树的中阶分别返回到树的前阶序列中,子树的根仍然在第一位,然后返回到子树的中阶进行切割,直到所有子树只有一个节点

数据结构中序遍历例题 数据结构前序中序后续怎么求 数据结构先序中序后序题目

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。