gpt4 book ai didi

javascript - 插入二叉树的第一个元素,是放在左边还是右边?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:18:54 28 4
gpt4 key购买 nike

所以我尝试在 JavaScript 中创建一个二叉树

function ToBinaryTree ( arr )
{
// creates a binary tree from an array arr of comparable objects

this.Tree = { left: undefined, right: undefined };

this.CreateNode = function ( value )
{
return { val : undefined, left : undefined, right : undefined }
};
this.Insert = function (elem)
{
var node = this.CreateNode(elem);
if ( this.Tree.left == undefined )
// ... ??
};

// insert elements from array provided in "constructor"
arr.forEach(function(x){
this.Insert(x);
}.bind(this));

this.Contains = function (elem)
{
// ...
};

return this;
}

我不知道第一个插入的元素应该放在右边还是左边,如果是,比如说,左边 (this.Tree.left),然后我是否通过检查 this.Tree.left == undefined 来检查是否没有插入元素???

最佳答案

第一个元素在根上:

this.CreateNode = function (value) {
return {
val: value, // Store the root value here instead of undefined
left: undefined,
right: undefined
};
};

附注刚刚意识到这个错误不是唯一的问题,你还有一个“树”构造函数(?)...不要试图将节点与整个树区分开来,在大多数情况下,假设树是更简单的与其根节点相同,并有一个额外的“外部”静态插入方法,可以处理“空”或未定义的树参数(根据需要返回新树)

p.p.s.如果您使用 undefined 作为空树标记,您可以直接覆盖插入时的值。

关于javascript - 插入二叉树的第一个元素,是放在左边还是右边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704118/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com