zoukankan      html  css  js  c++  java
  • JAVA向,二叉查找树

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

    类似折半查找:

    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);
            }
        }
    }
  • 相关阅读:
    如何结合后台数据库 启动vue项目
    nodejs卸载安装
    mysql安装过程
    VUE-cli脚手架
    css伪类
    element中遇到的表格问题总结
    小程序折叠面板的功能
    vue学习中遇到的onchange、push、splice、forEach方法使用
    vscode好用的扩展及常用的快捷键
    Flutter之SliverAppBar
  • 原文地址:https://www.cnblogs.com/pengjunwei/p/3746709.html
Copyright © 2011-2022 走看看