美文网首页
二叉树(先序遍历,中序遍历,后序遍历)

二叉树(先序遍历,中序遍历,后序遍历)

作者: eliteTyc | 来源:发表于2019-06-25 10:42 被阅读0次

二叉树定义

每个节点的子节点数(度)不能大于2

先序遍历

  • 定义:从二叉树的根结点出发,当第一次到达结点时就输出结点数据,按照先向左在向右的方向访问。
    image
    以上先序遍历输出的即如果为:ABDHIEJCFG
    访问顺序为:

从根结点出发,则第一次到达结点A,故输出A;
继续向左访问,第一次访问结点B,故输出B;
按照同样规则,输出D,输出H;
当到达叶子结点H,返回到D,此时已经是第二次到达D,故不在输出D,进而向D右子树访问,D右子树不为空,则访问至I,第一次到达I,则输出I;
I为叶子结点,则返回到D,D左右子树已经访问完毕,则返回到B,进而到B右子树,第一次到达E,故输出E;
向E左子树,故输出J;
按照同样的访问规则,继续输出C、F、G;

中序遍历

  • 定义:从二叉树的根结点出发,当第二次到达结点时就输出结点数据,按照先向左在向右的方向访问。
    中序遍历上图的输出结果是:HDIBJEAFCG
    访问顺序

先访问A节点,因为是第一次访问所以不输出,再访问左子节点到B,因为左子节点不为空,再访问左子节点到D,再访问D的左子节点H,因为H为叶子节点,直接输出H, -----> H
然后返回D,到D是第二次访问了,直接输出D, -----> HD
然后再访问右子节点I,右子节点是叶子节点,所以直接输出I ----->HDI
...

后序遍历

  • 定义:从二叉树的根结点出发,当第三次到达结点时就输出结点数据,按照先向左在向右的方向访问
    后序遍历输出结果是:HIDJEBFGCA
    访问顺序

从根结点出发,则第一次到达结点A,不输出A,继续向左访问,第一次访问结点B,不输出B;继续到达D,H;
到达H,H左子树为空,则返回到H,此时第二次访问H,不输出H;
H右子树为空,则返回至H,此时第三次到达H,故输出H;
由H返回至D,第二次到达D,不输出D;
继续访问至I,I左右子树均为空,故第三次访问I时,输出I;
返回至D,此时第三次到达D,故输出D;
按照同样规则继续访问,输出J、E、B、F、G、C,A;

作者:MrHorse1992
链接:https://www.jianshu.com/p/bf73c8d50dc2

相关文章

网友评论

      本文标题:二叉树(先序遍历,中序遍历,后序遍历)

      本文链接:https://www.haomeiwen.com/subject/pmizqctx.html