???function BinaryTree() { ???????var Node = function(key) { ???????????this.key = key; ???????????this.left = null; ???????????this.right = null; ???????} ???????var root = null; ???????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); ????????????????} ???????????} ???????} ???????this.insert = function(key) { ???????????var newNode = new Node(key); ???????????if(root === null){ ???????????????root = newNode; ???????????} else { ???????????????insertNode(root, newNode) ???????????} ???????} ???????this.inOrderTraverseNode = function(node,callback){ ???????????if(node !==null) { ???????????????inOrderTraverseNode(node.left,callback); ???????????????callback(node.key); ???????????????inOrderTraverseNode(node.right,callback) ???????????} ???????} ???????this.inOrderTraverse = function(callback) { ???????????inOrderTraverseNode(root,callback) ???????} ????} ???var nodes = [8,3,10,1,6,14,4,7,13]; ???var binaryTree = new BinaryTree(); ???nodes.forEach(function(key){ ???????binaryTree.insert(key); ???}); ???var callback = function(key) { ???????console.log(key) ???} ???binaryTree.inOrderTraverse(callback); ???
js二分查找树实现
原文地址:https://www.cnblogs.com/kbnet/p/10242025.html