Data oriented tree structure that unleashes the power of callbacks to create, search and traverse tree. Data tree keeps the track of current node which updates upon insertion and deletion of the node from tree.
$ npm install data-tree
Then use via require('data-tree')
OR use browserified builds from dist/dataTree.js
OR dist/dataTree.min.js
in <script />
tag. Browserified builds available at dataTree.js and dataTree.min.js can be used in <script/>
directly.
Following examples will guide you about how to create tree, insert/remove nodes and search/traverse a tree. Don't forget to checkout Data-Tree reference.
dataTree
is global variable that can be used to create a tree in following way.
var tree = dataTree.create();
// Insert single value
tree.insert(183);
// Insert array of values
// NOTE: This does not create 3 different nodes. It considers an array as a whole data and puts in a single node.
tree.insert([34, 565, 78]);
// Insert Objects
tree.insert({
key: '#berries',
value: { name: 'Apple', color: 'Red'}
});
// Insert data
tree.insert({
key: '#apple',
value: { name: 'Apple', color: 'Red'}
});
// New Data
var greenApple = {
key: '#greenapple',
value: { name: 'Green Apple', color: 'Green' }
};
// Insert data to node which has `key` = #apple
tree.insertTo(function(data){
return data.key === '#apple'
}, greenApple);
// Insert data
var node = tree.insert({
key: '#apple',
value: { name: 'Apple', color: 'Red'}
});
// New Data
var greenApple = {
key: '#greenapple',
value: { name: 'Green Apple', color: 'Green' }
};
// Insert data to node
// This will create a new node with given data and append to parent node provided
tree.insertToNode(node, greenApple);
// Insert Node
var node = tree.insert({
key: '#apple',
value: { name: 'Apple', color: 'Red'}
});
// Remove it
tree.remove(node);
var node = tree.traverser().searchBFS(function(data){
return data.key === '#apple';
});
var node = tree.traverser().searchDFS(function(data){
return data.key === '#apple';
});
tree.traverser().traverseBFS(function(node){
console.log(node.data());
});
tree.traverser().traverseDFS(function(node){
console.log(node.data());
});
- Clone this repositoy and
cd
into it npm install
grunt build
to build browserify files ORgrunt watch
to build automatically upon file change.