java实现二叉树的递归方式遍历

来源:互联网 发布:ubuntu php模块 编辑:程序博客网 时间:2024/04/30 05:32

刚刚看了一下数据结构,有了些兴致实现一下Java中的二叉树。因为二叉树涉及到的主要知识是二叉树的遍历,所以这里简单实现一下。

先定义一下二叉树的节点类如下:

class Tree{    //定义一颗二叉树     Tree leftTree;//定义左子树     Tree rightTree;//定义右子树     Object data;//定义存储的数据    Tree(){}    //省略getter/setter/private....别这样}

接下来写主类

public class MyTree{    private Tree root;//定义一个根树root    public void list(Tree root) {        if(root == null) {        //根节点为空就不遍历了,因为采用递归,并不总是是根节点root,名称而已            return;        }else {            //根据以下三者的顺序可以组成前序,中序和后序遍历            //这里是前序遍历            System.out.print(root.data +", ");            if(root.leftTree != null){                list(root.leftTree);            }            if(root.rightTree !=null) {                list(root.rightTree);            }        }        //主要代码就是这段递归,非递归实现现在没有思路    }    public static void main(String argc[]) {        MyTree mt = new MyTree();        //为这颗树添加内容        Tree t1 = new Tree();        t1.data = "a";        Tree t2 = new Tree();        t2.data = "b";        Tree t3 = new Tree();        t3.data = "c";        Tree t4 = new Tree();        t4.data = "d";        Tree t5 = new Tree();        t5.data = "e";        Tree t6 = new Tree();        t6.data = "f";        Tree t7 = new Tree();        t7.data = "g";        //为树与树之间创建关联        t1.leftTree = t2;        t1.rightTree = t5;        t2.leftTree = t3;        t2.rightTree = t4;        t5.rightTree =t6;        t6.leftTree = t7;        //开始从根节点遍历        mt.list(t1);    }}

输出结果:

Compiling MyTree.java......------------a, b, c, d, e, f, g,

end:
图片来自网络
如果有其它想要实现的数据结构,欢迎一起讨论与实现

0 0
原创粉丝点击