JAVA向,二叉查找树

来源:互联网 发布:钢铁行情分析软件 编辑:程序博客网 时间:2024/06/03 20:02

满足二叉查找树的存储规则。

类似折半查找:

import javax.management.remote.rmi._RMIConnectionImpl_Tie;/** * Created by John on 14-5-22. */public class IntTree {    private static class IntTreeNode    {        private int data;        private IntTreeNode leftLink;        private IntTreeNode rightLink;        public IntTreeNode(int newData,IntTreeNode newLeftLink,IntTreeNode newRightLink)        {            data =newData;            leftLink=newLeftLink;            rightLink=newRightLink;        }    }    private IntTreeNode root;    public IntTree()    {        root=null;    }    public void add(int item)    {        root=insertInSubtree(item,root);    }    public boolean contains(int item)    {        return isInSubtree(item,root);    }    public void showElements()    {        showElementsInSubtree(root);    }    private static boolean isInSubtree(int item,IntTreeNode subTreeRoot)    {        if(subTreeRoot==null)            return new IntTreeNode(item,null,null);        else if(item <subTreeRoot.data)        {            subTreeRoot.leftLink=insertInSubtree(item, subTreeRoot.leftLink);            return subTreeRoot;        }        else        {            subTreeRoot.rightLink=insertInSubtree(item,subTreeRoot.rightLink);            return subTreeRoot;        }    }     private static boolean isInSubtree(int item,IntTreeNode subTreeRoot)    {        if(subTreeRoot==null)            return false;        else if(subTreeRoot.data==item)            return true;        else if(item<subTreeRoot.data)            return isInSubtree(item,subTreeRoot.leftLink);        else            return isInSubtree(item,subTreeRoot.rightLink);    }    private static void showElementsInSubtree(IntTreeNode subTreeRoot)    {        if(subTreeRoot!=null)        {            showElementsInSubtree(subTreeRoot.leftLink);            System.out.print(subTreeRoot.data+" ");            showElementsInSubtree(subTreeRoot.rightLink);        }    }}

 

0 0