初学二叉树,参考了网上使用递归创建二叉树的方法,发现只能创建数字型二叉树,所以我想实现一个创建方法:可以接受字符串,然后按照添加顺序,从左到右创建节点。比如说,传入7个值,我希望它的结构是这样的: value1 value2 value3value4 value6 value5 value7我想了半天也没有想出,希望大家指点一下。附带一份代码供大家参考:function BinarySearchTree() {
var Node = function(key) {
this.key = key;
this.left = null; //左键(元素)
this.right = null; //右键(元素)
}
var root = null; //根元素
//向树中插入一个新键
this.insert = function(key) {
if(root === null) { //判断根元素是否存在
root = newNode;
} else {
insertNode(root, newNode);
}
}
/* node 根节点
* newNode 新节点
*/
var insertNode = function(node, newNode) {
//判断新元素的key值是小于父元素的key
if(newNode.key < node.key) {//新元素的key值小于父元素的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);
}
}
}
}
var tree = new BinarySearchTree();
添加回答
举报
0/150
提交
取消