关于数据结构:数据结构初学二叉树创建

二叉树(Binary tree)是树形构造的一个重要类型。许多理论问题形象进去的数据结构往往是二叉树模式,即便是个别的树也能简略地转换为二叉树,而且二叉树的存储构造及其算法都较为简单,因而二叉树显得特地重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分。

由二叉树定义以及图示剖析得出二叉树有以下特点:
1)每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。
2)左子树和右子树是有程序的,秩序不能任意颠倒。
3)即便树中某结点只有一棵子树,也要辨别它是左子树还是右子树

上面代码如何去创立一个二叉树

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>二叉树</title>
</head>
<body>
    <script type="text/javascript">
        function BinaryTree(){
            var Node = function(key){
                this.key = key;
                this.left = null;
                this.right = null;
            }

            //插入节点 大于旧节点,放在node.right 小于旧节点,放在node.left
            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)
                    }
                }
            }
            var root = null;
            //创立节点并插到相应的地位
            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 BinaryTree()
        nodes.forEach(key =>{
            binaryTree.insert(key)
        })
        console.log(binaryTree)
    </script>
    
</body>
</html>

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理