码迷,mamicode.com
首页 > 编程语言 > 详细

javascript实现BST

时间:2017-04-29 09:45:00      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:插入   ++   value   tmp   log   i++   遍历   构造函数   判断   

思路:
1.建立节点构造函数
2.插入节点过程:先判断当前节点上是否有值,有则通过与当前节点值比较,进入左节点或者右节点,否则将值赋给当前节点
3.创建二叉树和根节点,并进行节点添加
4.遍历节点上的值,对创建的二叉树测试
function Node(){

this.value = null;
this.lChild = null;
this.rChild = null;

}

function BSTInsert(node,value){
if(node.value === null)
{
node.value = value; // node = new Node() 这种操作会与原始树断开
node.rChild = new Node();
node.lChild = new Node();
return true;
}

if(node.value == value){
return false;
}

if(node.value > value)
{
return BSTInsert(node.lChild,value);
}
else{
return BSTInsert(node.rChild,value);
}

}

function creatBST(arr){
var T = null;

T = new Node();
T.value = 0;
T.rChild = new Node();
T.lChild = new Node();
for(var i = 0;i<arr.length;i++)
{
//console.log(T);
BSTInsert(T,arr[i]);
}
inOrderTravers(T);
}

function inOrderTravers(T){
if(T.value !==null)
{
inOrderTravers(T.lChild);
console.log(T.value);
inOrderTravers(T.rChild);

}
}

var arrTmp = [1,2,3,4,5,6,7,8,9];
creatBST(arrTmp);

javascript实现BST

标签:插入   ++   value   tmp   log   i++   遍历   构造函数   判断   

原文地址:http://www.cnblogs.com/kaer-blogs/p/6784116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!