每天一点数据结构之二叉树的插入与创建
二叉树的插入:
1.判断树是否为空,如果为空则直接插入当前结点成为根结点
2.若根不为空,则判断是否小于根
3.小于根插入左子树
4.大于根插入右子树
5.以此循环下去,插入完成退出
<span style="font-size:18px;">//二叉树的插入
BinaryTree.prototype.insert = function(data)
{
//在这里写入代码
var node = new BinaryTreeNode(data, null, null);
var nodeNow = this.root;
//若树为空,则直接插入成为根节点
if(this.root == null)
{
this.root = node;
return this.root;
}
//若树不为空,则判断是否小于根,小于插入左子树,大于插入右子树
while (nodeNow != null)
{
if ( node.data < nodeNow.data ) //插入左子树
{
if (nodeNow.left == null) //如果无左子树,直接插入
{
nodeNow.left = node;
break;
}
else //如果有左子树,继续沿左子树比较
nodeNow = nodeNow.left;
}
else //插入右子树
{
if (nodeNow.right == null) //如果无右子树,直接插入
{
nodeNow.right = node;
break;
}
else //如果有右子树,继续沿右子树比较
nodeNow = nodeNow.right;
}
}
return this.root;
};</span>
完成了插入,创建就十分简单了,首先创建一个空的二叉树,以数组的形式接收要插入的数据,遍历这个数组,调用插入函数将数组中的每一项都插入即可。
//二叉树的创建
BinaryTree.prototype.create = function (array)
{
var nodeTree =this;
<span style="white-space:pre"> </span>array.forEach(function (item) {
<span style="white-space:pre"> </span>nodeTree.insert(item);
<span style="white-space:pre"> </span>});
}

本文探讨了数据结构中的二叉树,重点讲解如何非递归地进行二叉树节点的插入和创建过程。
5755

被折叠的 条评论
为什么被折叠?



