Mr.J--树的遍历方式详解

版权声明:转载请标明出处 https://blog.csdn.net/Ms_yjk/article/details/85248249

树的遍历方式分有三种:先序遍历,中序遍历,后序遍历

先序遍历的顺序:NLR(根节点->左结点->右结点)

中序遍历的顺序:LNR(左节点->根结点->右结点)

后序遍历的顺序:LRN(左结点->右结点->根节点)

可以先看一下我之前的博客,一种简便形象的快速求二叉树遍历方式(点击链接

这次主要写一下已知两种遍历序列,如何快速求出第三种遍历序列(除去已知前序遍历和后序遍历求中序遍历的情况

习题1:

    给定二叉树的两种遍历序列,前序:DACEBHFGI,中序:DCBEHAGIF

分析:从前序序列可以得出D为根节点,在中序序列中查看可知,D无左子树,CBEHDGIF为右子树。再次返回前序序列,得出A为D的右结点,

在中序序列可以看出CBEH为A的左子树,GIF为A的右子树,由前序可知,C为CEBH的根节点,F为FGI的根节点:

在中序得知C没有左子树,所以EBH为C的右子树,并且E为根节点,同理F的左子树由GI组成。G为F的左结点,I的根节点,以此规律找下去,最终求得:

习题2:

已知一棵二叉树的中序序列和后序序列分别是BDCEAFHG 和 DECBHGFA,求出前序遍历序列

首先从后序序列得知根节点为A,由中序序列得知BDCE为A的左子树部分并且B为A的左孩子,FHG为右子树部分。分块分析B为BDCE的根节点,H为FHG的根节点并且H为A的右孩子。最终得到:


 

猜你喜欢

转载自blog.csdn.net/Ms_yjk/article/details/85248249
今日推荐