知道中序遍历和后续遍历,若何画出二叉树,并写出前序遍历。其实只要知道肆意两个遍历,即可画出应有的二叉树,与是否是满二叉树无关!!!
如图,例子来申明。知道中序和后序遍历,画二叉树和写出前序遍历。
从后序遍历知道,最后一个必然是根节点,是以A是根。再连系中序遍历可知HDMIBJNE是A的左子树部门,FKCG是右子树部门。
取A的右子树部门来看先,右子树部门的中序遍历:FKCE,后序遍历:KFGC。接着从后序遍历中看A的右子树部门KFGC,所以C是根。又从中序遍历知,FK是C的左子树部门,G是C右子树。如图所示
利用同样的方式,C的左子树部门,中序:FK,后序:KF。可以得出F是根,那么K只能是F的右子树了。此时如图所示,A的右子树部门都出来了
再看,A的左子树部门HDMIBJE,中序:HDMIBJNE,后序:HMIDNJEB。后序遍历可知,B是根结点,那么再连系中序遍历可知道HDMI是B的左子树部门,JNE是B的右子树部门。
紧接着就是看B的左子树部门HDMI,中序:HDMI,后序:HMID,可知D是根,H是D的左子树,MI是D的右子树部门,如图所示。
看到D的右子树部门,中序后序都是MI,按照后序中序的特征可知道,根只能是I,M是I的左子树。
再接着看看B的右子树部门JNE,中序:JNE,后序:NJE,后序看出E是根,中序看出E无右子树,只有JN是E的左子树部门。
最后看JN的中序:JN,后序:NJ,按照后序特征看出,J是根,中序看出N是J的右子树。那么整体的二叉树就出来了,如图所示。
已知中序遍历:ACQVLCOJYPRKSXG
后序遍历:AVQCOCJLRSKPGXY
画出二叉树,并写出前序遍历。
二叉树如图所示,前序遍历是YLCAQVJCOXPKRSG
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!