二叉树特点:
每个节点最多只能有两个子节点,
若左子节点不为空,左子节点小于其父节点
若右子节点不为空,右子节点大于其父节点
function Tree(){
var root = null; // 根节点
var Node = function(key){ // 节点对象
this.key = key;
this.left = null;
this.right = null;
}// 插入节点到父节点
var insertNode = function(node, newNode){
if(newNode.key < node.key){ // 判断左子节点还是右子节点
if(node.left == null){
node.left = newNode;
console.log(newNode.key)
}else{
insertNode(node.left, newNode); // 递归
}
}else{
if(node.right == null){
node.right = newNode;
console.log(newNode.key);
}else{
insertNode(node.right, newNode); // 递归
}
}
};this.insert = function(key){
var newNode = new Node(key);
if(root == null){
root = newNode;
}else{
insertNode(root, newNode);
}
};
}var nodes = [8, 3, 10, 1, 6, 16, 4, 7, 13]; // 准备插入的节点
var tree = new Tree(); // 一个树的实例
nodes.forEach(function(key){
tree.insert(key); // 将节点插入进树
});