实现js的二叉树

今天算是第一次写一篇自己的博客,越是学习就越感叹学无止境,为了记录下来用js实现二叉树的方法,这算是最简单的一个算法了。

二叉树实现原理:把数组的第一个数据当作根节点,每个节点都有根节点,左孩子和右孩子,初始化为null。

1 function tree() {
2   this.value = null;
3   this.left = null;
4   this.right = null;5 }

每次获取到数值不为空则从左到右赋值给左孩子和右孩子,当下一个值大于根节点的值,如果左孩子为空,则把值赋给左孩子,如果不为空这则再次往上找根节点,如果小于则赋给右孩子

 1 /*
 2  *拿数组的第一个数据作为根节点,下面的每个节点都是一个新的对象,分别以不同的中心节点
 3  *判断左右节点的归属,最后形成一个二叉树
 4  */
 5 tree.prototype.add = function(data) {
 6   if (!data) {
 7     return;
 8   };
 9   if (this.value == null) {
10     this.value = data;
11     return;
12   };
13   //定义最中心的中心节点
14   var nlast = new arrayAct();
15   nlast.value = data;
16   if (this.value >= data) {
17     if (this.left == null) {
18       this.left = nlast;
19     } else {
20       this.left.add(data);
21     }
22   } else {
23     if (this.right == null) {
24       this.right = code;
25     } else {
26       this.right.add(data);
27     }
28   }
29 }

最后就是循环遍历获取数组中的值

1 var array = [7, 6, 56, 102, 5, 4, 47, 7000, 200, 45, 24, 85, 63, 954, 6222, 5],
2     re = [];
3   sortArray = new tree();
4   for (var i = 0; i < array.length; i++) {
5     sortArray.add(array[i]);
6   };
7   sortArray.print(re);
8   console.log(re)

 

转载于:https://www.cnblogs.com/Lyplearn/p/5790749.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值