排序二叉树——查找最大(小)节点

对于排序二叉树系列,本来是应该一起写出来的。虽然也有点为了凑更新,但是我觉得分开消化会比较好吧,而且我看视频学习的时候确实是一点一点学会的。所以一点一点记录也没有错,O(∩_∩)O哈哈~

查找最大(最小节点)我觉得还是很实用的,理解也不是很困难,假如你还是不能理解,那么你肯定是没有看过之前的前、中、后续遍历。那么我建议先看看排序二叉树的那篇。废话不多说,直接上代码:

<script type="text/javascript">
    function BinaryyTree() {
        var Node=function (key) {              //定义一个节点
            this.key=key;
            this.left=null;
            this.right=null;
        }
        var root =null;
        var insertNode=function (node,newNode) {         //二叉树的实现方法
            if (newNode.key<node.key){
                if (node.left==null){
                    node.left=newNode;
                }else {
                    insertNode(node.left,newNode);
                }
            }else {
                if (node.right==null){
                    node.right=newNode;
                }else {
                    insertNode(node.right,newNode);
                }
            }
        }
        this.insert=function (key) {              //二叉树创建接口
            var newNode= new Node(key);
            if (root===null){
                root=newNode;
            }else {
                insertNode(root,newNode);
            }
        }
        var minNode=function (node) {               //实现最小值流程
            if (node!==null){
                while (node&&node.left!==null){
                    node=node.left;
                }
                return node.key;
            }
            return null;
        }
        this.min=function () {       //找最小节点接口
            return minNode(root)
        }
        var maxNode=function (node) {
            if(node!==null){
                while (node&&node.right!==null){
                    node=node.right;
                }
                return node.key;
            }
            return null;
        }
        this.max= function () {      //z找最大节点接口
            return maxNode(root);
        }

    }
    var node=[7,3,9,5,12,21,18,32];        //创建一个数组
    var binaryyTree= new BinaryyTree();    //构造一颗二叉树
    node.forEach(function (key) {            //创建一颗二叉树
        binaryyTree.insert(key);
    })
    var callback=function (key) {                       //回调函数,实现输出
        console.log(key);
    };
    console.log("min is a:"+binaryyTree.min());
    console.log("max is a:"+binaryyTree.max());

最后我们在浏览器的控制台里面调试,检验下代码是否出错,也可以设置断点,看看是怎么实现的流程。反正我是这么做的,下面是控制台打印出来的结果:

查找最大最小值

陈健的个人博客,记录生活所见所感、学习笔记。专注于Web前端_SEO教程_读书心得。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

返回主页看更多
狠狠的抽打博主 支付宝 扫一扫