您的位置:首页 > 理论基础 > 数据结构算法

每天一点数据结构之二叉树的插入与创建

2016-05-25 14:32 316 查看

每天一点数据结构之二叉树的插入与创建

二叉树的插入:
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 != nul
4000
l)
{
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>});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: