//实现二叉搜索树:特点 左侧的值小于父节点 右侧的值大于父节点
//创建的节点
class Node {
constructor(value) {
this.right = null;
this.left = null;
this.value = value
}
}
//存放节点
class Bst {
constructor() {
this.root = null;
}
insertNode(node, oldVal) {
if (oldVal.value > node.value) {
if (node.right == null) {
node.right = oldVal
} else {
this.insertNode(node.right, oldVal)
}
} else if (oldVal.value < node.value) {
if (node.left == null) {
node.left = oldVal
} else {
this.insertNode(node.left, oldVal)
}
}
}
insert(val) {
let node = new Node(val);
if (this.root == null) {
this.root = node;
} else {
this.insertNode(this.root, node)
}
}
}
let bst=new Bst();
bst.insert(10);
bst.insert(1);
bst.insert(111);
bst.insert(12);
bst.insert(7);
console.log(bst.root);//生成的二叉搜索树
|