二叉树的几种遍历规则都是对其子树进行应用
前序遍历
给定一颗二叉树
1.其前序遍历顺序为
根节点 -> 左侧子树 -> 右侧子树
给定一个如上图的二叉树,其前序遍历对应的节点顺序为 a b d h e c f g(根 左 右 的顺序)
2. 中序遍历,顺序为 左侧子树 -> 根节点 -> 右侧子树
上图二叉树的中序遍历顺序为,h d b e a f c g(左 根 右 的顺序)
3. 后续遍历,顺序为 左侧子树 -> 右侧子树 -> 根节点
上图二叉树的后序遍历顺序为 ,h d e b c f g c a(左 右 根 的顺序)
这个知识有什么用呢,当然是考试用了,一般数据结构中会有,给定前序中序,还原二叉树,并求出其后序遍历顺序的考题,或者给定中序,后序,求其前序遍历顺序
例:一个二叉树的前序遍历顺序是 abdeghcfi ,中序遍历顺序是 dbgehacif, 求其后序遍历顺序
众所周知,前序遍历的顺序是 根左右,那么可知,a 是其二叉树的根结点,
前序 a (根) bdeghcfi,中序 dbgeh(左) a(根) cif(右)
前序子树 bdeghcfi ,b 为根节点,对比中序左侧 dbgeh 可知,d (左) b(根) geh(右)
继续推断前序左侧 bd egh 按照根左右的顺序,可知 e 为根节点,对应中序 geh , 可知
至此,左侧子树完成,然后回到右侧子树 根据前序 cfi 可知,根节点为 c ,因为中序节点为 cif,可知,c 是没有左侧节点的,那么 f 是其右节点 , if 是左 根 右的顺序,那么 i 为左结点
最终结果
然后将得到的二叉树进行后序遍历,d g h e b i f c a