//Define Node
class Node {
constructor (value) {
this.value = value,
this.left = null,
this.right = null
}
}
class Tree {
constructor () {
= null //First define the root node asnull
}
//Finding Insert Node
insertNode (node, CurrentNode){
if (node.value > CurrentNode.value) {
if (CurrentNode.right) {
(node, CurrentNode.right) //Recursive Continue to search downward
} else {
CurrentNode.right = node
}
} else if (node.value < CurrentNode.value) {
if (CurrentNode.left) {
(node, CurrentNode.left) //Recursive Continue to search downward
} else {
CurrentNode.left = node
}
}
}
//insert
insert (value) {
var node = new Node(value)
if () {
(node, )
//Because it is recursive, the method is encapsulated separately
} else {
= node //No root node Set as root node
}
}
//Traversing nodes
traverse (callback) {
(, callback)
}
traver(node, callback) {
if (node === null) {
return
}
(node.left, callback)
callback(node.value) //Middle order traversal, post order traversal, preorder traversal, etc. change the position of this line of code at a high level
(node.right, callback)
}
//Delete nodes
remove () {
}
//Binary Tree Minimum Value Find the leftmost node
getMin () {
//Return to the empty treenull
if ( === null) {
return null
}
var current =
while(current.left) {
current = current.left
}
return current.value
}
//Get the maximum value of the binary tree search tree. Rightmost node
getMax () {
//Return to the empty treenull
if ( === null) {
return null
}
var current =
while(current.right) {
current = current.right
}
return current.value
}
//Get the tree
getTree () {
return
}
}
var tree = new Tree()
(12)
(13)
(4)
(13)
(())
((value) => {
('VALUE', value)
})
(())
(ax())