数据结构-二叉树遍历

202 阅读2分钟

二叉树的几种遍历规则都是对其子树进行应用

前序遍历

给定一颗二叉树

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