博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的遍历
阅读量:5118 次
发布时间:2019-06-13

本文共 1770 字,大约阅读时间需要 5 分钟。

二叉树的遍历

    1.以某种次序访问所有节点,且每个节点恰好只访问一次
    2.遍历方式:先序遍历、中序遍历、后序遍历。它们是针对根节点的访问顺序决定的
    3.遍历二叉树均指二叉树不为空的情况。
    
1.先序遍历:根节点 --> 左子树 --> 右子树
2.中序遍历:左子树 --> 根节点 --> 右子树
3.后序遍历:左子树 --> 右子树 --> 根节点
范例:
1.节点类 - Node

1 /** 2  * 节点类 3  * @author Ivy 4  */ 5 public class Node { 6     // 节点值 7     int data; 8     // 左子树 9     Node left;10     // 右子树11     Node right;12 13     public Node(int data, Node left, Node right) {14         this.data = data;15         this.left = left;16         this.right = right;17     }18 19 }

2.遍历类 - BinaryTree

import java.util.Vector;/** * 实现二叉树类 * @author Ivy */public class BinaryTree {//  省略其它代码......//    先序遍历    public static Vector rootFirst(Node root) {        Vector result = new Vector();        if (null == result) {            return result;        }        result.add(root);        Vector leftChild = rootFirst(root.left);        result.add(leftChild);        Vector rightChild = rootFirst(root.right);        result.add(rightChild);        return result;    }//    中序遍历    public static Vector rootMid(Node root) {        Vector result = new Vector();        if (null == result) {            return result;        }        Vector leftChild = rootFirst(root.left);        result.add(leftChild);        result.add(root);        Vector rightChild = rootFirst(root.right);        result.add(rightChild);        return result;    }//    后序遍历    public static Vector rootLast(Node root) {        Vector result = new Vector();        if (null == result) {            return result;        }        Vector leftChild = rootFirst(root.left);        result.add(leftChild);        Vector rightChild = rootFirst(root.right);        result.add(rightChild);        result.add(root);        return result;    }    }

 

转载于:https://www.cnblogs.com/ivy-xu/p/5751690.html

你可能感兴趣的文章
clipboard.js使用方法
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
伪类与超链接
查看>>
centos 7 redis-4.0.11 主从
查看>>
博弈论 从懵逼到入门 详解
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>