JS描述一棵树

346 阅读1分钟

Typescript描述

/*
 * @Author: liny4
 * @Date: 2022-01-12 10:07:45
 * @LastEditors: liny4
 * @LastEditTime: 2022-01-12 11:46:40
 * @Description: file content
 */
class TreeNode {
    val:number;
    left:TreeNode;
    right:TreeNode;
    constructor(val:number) {
        this.val = val;
        this.left = null;
        this.right = null
    }
}
​
class binaryTree {
    root:TreeNode;
    constructor() {
        this.root = null
    }
    insert(val:number){
        const newNode = new TreeNode(val);
        const insertNode = (node:TreeNode,newNode:TreeNode)=>{
            if(newNode.val<node.val){
                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)
                }
            }
        }
        if(!this.root){
            this.root=newNode;
        }else{
            insertNode(this.root,newNode)
        }
    }
}
​
const tree = new binaryTree();
tree.insert(11);
tree.insert(11)
tree.insert(7)
tree.insert(5)
tree.insert(3)
tree.insert(9)
tree.insert(8)
tree.insert(10)
tree.insert(13)
tree.insert(12)
tree.insert(14)
tree.insert(20)
tree.insert(18)
tree.insert(25)
​
console.log(JSON.stringify(tree));
​

\