码迷,mamicode.com
首页 > Web开发 > 详细

实现js的二叉树

时间:2016-08-20 17:36:41      阅读:1485      评论:0      收藏:0      [点我收藏+]

标签:

今天算是第一次写一篇自己的博客,越是学习就越感叹学无止境,为了记录下来用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)

 

实现js的二叉树

标签:

原文地址:http://www.cnblogs.com/Lyplearn/p/5790749.html

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