中序遍歷和前序遍歷肯定一棵二叉樹(筆算)

已知前序遍歷序列和中序遍歷序列,能夠惟一肯定一棵二叉樹。
已知後序遍歷序列和中序遍歷序列,能夠惟一肯定一棵二叉樹。
可是已知前序遍歷序列和後序遍歷序列,是不能肯定一棵二叉樹的。ide

下面例子經過前序遍歷和中序遍歷肯定惟一的一棵二叉樹。spa

前序遍歷:EACBDGF.net

中序遍歷:ABCDEFGcode

一、首先根據前序遍歷找出根節點是E,而後根據中序遍歷能夠知道ABCD是E的左子樹,FG是E的右子樹。blog

 

 

二、而後根據左子樹的先序:ACBD,中序:ABCD,肯定A爲根結點,無左子樹,右子樹爲BCDget

 

 

三、右子樹爲BCD,先序:CBD,中序:BCD,肯定C爲根結點,B爲左子樹,右子樹爲Dclass

 

 

四、右子樹爲GF,先序:GF,中序:FG,肯定G爲根結點,無左子樹,右子樹爲F二叉樹

 

 

五、最終的二叉樹爲:遍歷

 

 

後序遍歷爲:BDCAFGEim

 

後序遍歷序列和中序遍歷序列,能夠惟一肯定一棵二叉樹和前中很類似,先根據後序遍歷的最後一個元素肯定根結點,而後經過中序遍歷分爲左右子樹,再在子樹肯定根結點,以此類推。


原文連接:http://www.javashuo.com/article/p-nqdpodtl-nt.html

 

 

試試你學會了嗎?

先序:ABJDECFGHI

中序:JBEDAFHGIC

求後序遍歷

答案:

JEDBHZGFCA
View Code
相關文章
相關標籤/搜索