javascript 使用递归创建二叉树

初学二叉树,参考了网上使用递归创建二叉树的方法,发现只能创建数字型二叉树,所以我想实现一个创建方法:可以接受字符串,然后按照添加顺序,从左到右创建节点。

比如说,传入7个值,我希望它的结构是这样的:

                    value1

        value2            value3

value4    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();


Walk_
浏览 2403回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript