数据结构-二叉树遍历

数据结构中对于二叉树的遍历一共有三种

  1. 前序遍历
  2. 中序遍历
  3. 后序遍历

其实要划分三者很简单,只要将二叉树以当前节点(初始为根root节点),左子节点,右子节点三者划分出来,三种遍历就只是在以当前节点的位置区分前序、中序、后序遍历。

具体划分为:

1)前序遍历:

①先输出当前节点;②如果左子节点不为空,则递归前序遍历;③如果右子节点不为空,则递归前序遍历。

2)中序遍历:

①如果左子节点不为空,则递归中序遍历;②输出当前节点;③如果右子节点不为空,则递归中序遍历。

3)后续遍历:

①如果左子节点不为空,则递归后序遍历;②如果右子节点不为空,则递归后序遍历;③输出当前节点。

总结:

三种遍历内容大体一致,具体区分的是当前节点的输出顺序,只要记住这点和输出顺序,相关的遍历顺序题就迎刃而解了。

具体代码实现:

1)前序遍历:

        System.out.println(this);//先输出父节点
        //递归左子树
        if (this.left != null) {
            this.left.preOrder();
        }
        //递归向右子树前序遍历
        if (this.right != null) {
            this.right.preOrder();
        }

2)中序遍历:

        //递归左子树
        if (this.left != null) {
            this.left.infixOrder();
        }
        System.out.println(this);//输出父节点
        //递归向右子树前序遍历
        if (this.right != null) {
            this.right.infixOrder();
        }

3)后序遍历:

        //递归左子树
        if (this.left != null) {
            this.left.postOrder();
        }
        //递归向右子树前序遍历
        if (this.right != null) {
            this.right.postOrder();
        }
        System.out.println(this);//输出父节点

是不是很简单,不积跬步无以至千里,你学废了吗?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值