数据结构入门之二叉树遍历

二叉树作为一种非线性结构,人类给其规定了三种转为线性的顺序,分别为:
1、先序遍历:先访问根节点,再先序遍历左子树,最后先序遍历右子树
2、中序遍历:先中序遍历左子树,再访问根节点,最后中序遍历右子树
3、后序遍历:先后序遍历左子树,再后序遍历右子树,最后访问根节点

(先、中、后指的是根节点的遍历顺序)
其实从定义上就可以看出,先、中、后序都是采用了递归的思想进行遍历的。
比如:

image.png

先序遍历:ABDFHCEGIJ
先访问根节点A,然后对左子树BDFH进行先序访问,那么顺序就是:先访问B,然后是B的左子树,然后再到右子树(B的右子树为空所以不用遍历),B的左子树又是先根节点D,然后左子树(为空),再到右子树,右子树又是先根节点F,然后左右子树(右子树为空),右子树以此类推。
中序遍历:DHFBACIGJE
后序遍历:HFDBIJGECA
中序和后序就不写了,大同小异。

由二叉树的遍历还可以引出两道经典考试题:已知先序(后序)和中序,请画出二叉树。
对于这类题目,解题的关键是谨记两个原则:
1、先、后序确定根节点
2、中序确定左右

下面我给出两道题目,答案在最后面,有兴趣的小伙伴可以做一下。
例题1:已知某二叉树的先序遍历为:ABCDEFGHI,中序遍历为:CBEDFAHIG,请画出二叉树。



以下为答案:



image.png

例题2:已知某二叉树的后序遍历为:JDBCMIEA,中序遍历为:DJBACEIM,请画出二叉树。



以下为答案:



image.png

你可能感兴趣的:(数据结构入门之二叉树遍历)