先序遍历 中序遍历 后序遍历

  • Post author:
  • Post category:其他



一、现在,假设仅仅知道前序和中序遍历,如何求后序遍历呢?比如,已知一棵树的前序遍历是”GDAFEMHZ”,而中序遍历是”ADEFGHMZ”应该如何求后续遍历?


解法如下:


① 根据前序遍历可知树的根是G


②以G为分界点,再根据中序遍历知道,G左边的ADEF是左子树节点的中序遍历,而HMZ是右子树节点的中序遍历。


G


ADEF             HMZ


③对于左子树,再根据其前序遍历的顺序DAFE可知,D为左子树的根。以D为分界点,根据中序遍历的结果知道,A是左子树,EF是右子树


G


D                         HMZ


A              EF


④前序遍历是FE,中序遍历是EF,所以,F是根,E是左子树


G


D                     HMZ


A                     F


E


⑤对于右子树HMZ的分析也同样类似:利用前序遍历找跟,利用中序遍历区分左右子树,不断递归。


二、现在,假设仅仅知道后序和中序遍历,如何求前序遍历呢?


这种情况与第一种类似


,利用后序遍历,得到根,利用中序遍历区分左右子树,对左右子树分别进行递归调用。


三、现在,假设仅仅知道后序和前序遍历,如何求中序遍历呢?


这种情况下,所得结果不唯一。





版权声明:本文为LI_ANGGEZI原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。