数据结构学习笔记4.3--遍历树

本文详细介绍了二叉树的三种遍历方法:前序遍历、中序遍历及后序遍历,并通过示例代码展示了每种方法的具体实现过程。

遍历树是根据一种特定的顺序访问树的每一个节点。这个过程相对比较慢,所以一般不常用。

常用的遍历方法有三种,分别是:前序遍历,中序遍历,后序遍历。其中最常用,也最简单的是中序遍历。

遍历的最简单方法是用敌对调用,这里我们将三种排序方法都使用递归调用。

 

image

 

1.中序遍历

二叉树会使所有的节点按关键字值升序被访问到。如果需要创建有序的数据序列,使用中序遍历将会非常简单。

方法:

1.调用自身来遍历节点的左子树。

2.访问这个节点。

3.调用自身来遍历节点的右子树。

 

代码:

    /**
     * 中序遍历
     * @param localRoot 节点值
     */
    private void inOrder(Node localRoot)
    {
        if (localRoot != null)
        {
            inOrder(localRoot.leftChild);
            System.out.print(localRoot.iData + " ");
            inOrder(localRoot.rightChild);
        }
    }

执行结果:G D H B E I A C J F

 

投影法:

image

结果:G D H B E I A C J F

 

2.前序遍历

前序遍历多用于算术运算中表达式的表示方法。

方法:

1.访问这个节点。

2.调用自身遍历该节点的左子树。

3.调用自身遍历该节点的右子树。

 

代码:

     /**
     * 前序遍历
     * @param localRoot 节点值
     */
    private void preOrder(Node localRoot)
    {
        if (localRoot != null)
        {
            System.out.print(localRoot.iData + " ");
            preOrder(localRoot.leftChild);
            preOrder(localRoot.rightChild);
        }
    }

执行结果:A B D G E I C F G

 

3.后序遍历

方法:

1.调用自身遍历该节点的左子树。

2.调用自身遍历该节点的右子树。

3.访问这个节点。

 

代码:

    /**
     * 后续遍历
     * @param localRoot 节点值
     */
    private void postOrder(Node localRoot)
    {
        if (localRoot != null)
        {
            postOrder(localRoot.leftChild);
            postOrder(localRoot.rightChild);
            System.out.print(localRoot.iData + " ");
        }
    }

执行结果:G H D I E B J F C A

 

总结:

记忆遍历的三种方法,根据”访问这个节点”所在的位置确定。

如果在前面,则是前序遍历。

如果在中间,则是中序遍历。

如果在后面,则是后序遍历。

转载于:https://www.cnblogs.com/winlrou/p/3545012.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值