二叉树前序、中序、后序遍历求法

版权声明:如需转载,请附上原文链接即可 https://blog.csdn.net/doujinlong1/article/details/85051357

二叉树前序、中序、后序遍历相互求法

二叉树的三种遍历方法:

前序遍历:

1.访问根节点
2.前序遍历左子树
3.前序遍历右子树

中序遍历:

1.中序遍历左子树
2.访问根节点
3.中序遍历右子树

后序遍历:

1.后序遍历左子树
2.后序遍历右子树
3.访问根节点

三种方法的特点:

前序:开头是头结点,第一个节点肯定是根节点

中序:可以根据头结点划分左右子树的元素

后序:末尾是头结点,最后一个节点肯定是根节点

举例1,前中求后

前序遍历: GDAFEMHZ

中序遍历: ADEFGHMZ

求后序遍历。

前序可以得出 G为根节点。

带入中序中,ADEFG 为左边, HMZ为右边。

对应到两个子树的前序和中序。

左边前序:DAFE

左边中序:ADEF

右边前序:MHZ

右边中序:HMZ

推出:

左根节点D

右根节点M

以此类推,推导即可。

举例2,中后求前

中序遍历: ADEFGHMZ

后序遍历: AEFDHZMG

有后序,可以直接看出来G为根节点。

左边中序为ADEF

左边后序为AEFD

右边中序HMZ

右边后序HZM

推出左边根为D,右边根为M。

以此类推,推导即可。

举例3,前后求中

前序遍历: GDAFEMHZ

后序遍历: AEFDHZMG

可以得出根节点,但是无法确定左右子树,得到的解不唯一。

猜你喜欢

转载自blog.csdn.net/doujinlong1/article/details/85051357