排序二叉树

什么是排序二叉树?语义上很难解释清楚,所以我就用一张图来很直观的解释什么是排序二叉树。看完这张图,在结合代码,就很容易理解上面是排序二叉树了。
排序二叉树

图中的“8”我们称为这颗二叉树的根节点,这个节点的左边是3,右边是10。也就是说,节点左边的值小于节点的值,节点右边的值大于节点的值。这样一层一层的堆砌,就好像一颗树,所以我们把这种排序结构叫做排序二叉树。下面就是代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>排序二叉树</title>
</head>
<body>
<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 nodes=[8,3,10,1,6,14,4,7,13];       //创建一个数组
    var binaryTree =new BinaryyTree();      //构造一颗二叉树
    nodes.forEach(function (key) {          //把数组里面的数据依次倒数二叉树,创建一颗二叉树
        binaryTree.insert(key);             
    });
</script>
</body>
</html>

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

发表评论

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

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