第五章 树与二叉树 三、二叉树的先、中、后序遍历

一、定义

树的遍历是按照一定的顺序访问树的所有节点,常用的遍历方式有三种:先序遍历、中序遍历和后序遍历。

  • 先序遍历:从根节点开始,按照根节点-左子树-右子树的顺序遍历整棵树,即先访问根节点,然后遍历左子树、右子树。(NLR)

  • 中序遍历:从根节点开始,按照左子树-根节点-右子树的顺序遍历整棵树,即先遍历左子树,然后访问根节点,最后遍历右子树。(LNR)

  • 后序遍历:从根节点开始,按照左子树-右子树-根节点的顺序遍历整棵树,即先遍历左子树,然后遍历右子树,最后访问根节点。(LRN)

二、例子

第五章 树与二叉树 三、二叉树的先、中、后序遍历_第1张图片

 三、应用

1.求树的深度

int treeDepth(BiTree T) {
    if (T == NULL) {
        return 0;
    } else {
        int l = treeDepth(T->lchild);
        int r = treeDepth(T->rchild);//树的深度=Max(左子树深度,右子树深度)+1
        return l > r ? l + 1 : r + 1;
    }
}

你可能感兴趣的:(数据结构学习,算法,数据结构)