javascript JavaScript中的简单二叉树实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript JavaScript中的简单二叉树实现相关的知识,希望对你有一定的参考价值。
/**
* Binary Tree
* (c) 2014 Ben Lesh <ben@benlesh.com>
* MIT license
*/
/*
* A simple Binary Tree implementation in JavaScript
*/
function BinaryTree() {
var self = this;
var root;
function traverse(value, fn) {
var found = root,
side, parent;
while(found && found.value !== value) {
parent = found;
if(value > found.value) {
side = 'right';
found = found.right;
} else {
side = 'left';
found = found.left;
}
}
return { found: found, parent: parent, side: side };
}
self.add = function (value, item) {
if(typeof value === 'undefined') {
throw new Error('value cannot be undefined');
}
var node = new BinaryTreeNode(value, item);
if(!root) {
root = node;
return;
}
var result = traverse(value);
if(!result.found) {
result.parent[result.side] = node;
} else {
throw new Error('two items of the same value added');
}
};
self.search = function(value) {
var result = traverse(value);
return result.found ? result.found.item : null;
};
self.contains = function(value) {
return !!self.find(value)
};
self.root = function (){
return root;
};
function BinaryTreeNode(value, item) {
this.value = value;
this.item = item;
this.left = null;
this.right = null;
}
};
以上是关于javascript JavaScript中的简单二叉树实现的主要内容,如果未能解决你的问题,请参考以下文章
javascript JavaScript中的简单二叉树实现
Javascript 中的简单 HTML 清理程序
使用简单数组中的 javascript 创建动态 html 表
JavaScript中的简单范围/值滑块
javascript中的简单分页
javascript中变量中的简单引号