JavaScript 数据结构3 二叉树

用js实现一个二叉树:

class Tree{
    left=null;
    right=null;
    value=null;
    constructor(_value){
        this.value=_value;
    }
}
class Trees{
    constructor(){
        this.root=null;
    }
    insert(value){
        let tree=new Tree(value);
        if(!this.root){
            this.root=tree;
        }else{
            this.inserTree(this.root,tree);
        }
    }
    inserTree(tree,newTree){
        if(newTree.value<tree.value){
            if(tree.left){
                this.inserTree(tree.left,newTree);
            }else{
                tree.left=newTree;
            }
        }else{
            if(tree.right){
                this.inserTree(tree.right,newTree);
            }else{
                tree.right=newTree;
            }
        }
    }
}
let tree=new Trees();
for(let i=20;i>0;i-=2){
    tree.insert(i-1);
    tree.insert(i);
}
console.log(tree);

 

posted @ 2020-02-19 23:58  阿狸i  阅读(158)  评论(0编辑  收藏  举报