二叉树算法的简单实现

来源:互联网 发布:dilili软件下载 编辑:程序博客网 时间:2024/05/21 10:47

今天简单了解了下二叉树算法。
二叉树:二叉树是用来存储数据的,就像树一样,它每个节点下会有左右两个节点构(没有也可以)成新的二叉树。
这里写图片描述
了解一下代码

package treepath;//创建二叉树,其实创建二叉树很简单。public class TreePath {    int data; //根节点    TreePath left;//左树    TreePath right;//右树    //为二叉树赋值    TreePath(int data){        this.data = data;        left = null;        right = null;    }    //以下代码是将数组中的数据以图片中的形式展现出来    //:传入一个数(int data),判断data和根节点的大小    //如果大于根节点,判断右树是否为空,如果为空将data作为    //右树的根节点,在形成一个新的二叉树。我的理解 二叉树就是一个根节点加两个空的左右树,之后进行递归,将数据以图片形式展现出来。    public void insert(TreePath root,int data){        if(data >root.data){            if(root.right == null){                root.right = new TreePath(data);            }else{                insert(root.right,data);            }        }else{            if(root.left == null){                root.left = new TreePath(data);            }else{                insert(root.left,data);            }        }    }}//不同方式的遍历 //先序遍历 根左右-》输出左  根-》左树-》右树//中根遍历 左根右-》 先输出 左树-》根-》右树//后根遍历 左右根-》 先输出 左树-》右树-》根(方法没写)package treepath;public class TreePreoreder {//先序遍历    public void inPreoreder(TreePath root){        if(root != null){            System.out.print(root.data+"->");            inPreoreder(root.left);            inPreoreder(root.right);        }    }//中续遍历    public void midPreoreder(TreePath root){        if(root != null){            midPreoreder(root.left);            System.out.print(root.data+"->");            midPreoreder(root.right);        }    }}//测试package treepath;public class TestTree {     public static void main(String[] args) {     //将数据存入到数组中,也就是图片中的数据            int[] array = {12,76,35,22,16,48,90,46,9,40};            TreePreoreder tp = new TreePreoreder();    //以12作为起始的节点            TreePath root = new TreePath(array[0]);    //循环遍历,最后就是图片中的样子            for(int i =1;i<array.length;i++){                root.insert(root, array[i]);            }            //先序遍历            //tp.inPreoreder(root);            //中序遍历            tp.midPreoreder(root);            }    }

当运行上面的程序后结果如下:
先根遍历:
12-9-76-35-22-16-48-46-40-90-
中根遍历:
9–12–16–22–35–40–46–48–76–90–
后根遍历:
9—16—22—40—46—48—35—90—76—12—

原创粉丝点击