Data Tree
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.
Install:
$ npm install data-tree
Then use via require('data-tree')
OR use browserified build available at dataTree.min.js in <script/>
directly.
Examples:
Following examples will guide you to create tree, insert/remove nodes and search/traverse a tree. Don't forget to checkout Data-Tree reference.
Create tree
dataTree
is global variable that can be used to create a tree in following way.
var tree = dataTree.create();
Insert data
tree.insert(183);
tree.insert([34, 565, 78]);
tree.insert({
key: '#berries',
value: { name: 'Apple', color: 'Red'}
});
Create and append node to a parent node that satisfies the given criteria
tree.insert({
key: '#apple',
value: { name: 'Apple', color: 'Red'}
});
var greenApple = {
key: '#greenapple',
value: { name: 'Green Apple', color: 'Green' }
};
tree.insertTo(function(data){
return data.key === '#apple'
}, greenApple);
Create and append node using parent node's instance
var node = tree.insert({
key: '#apple',
value: { name: 'Apple', color: 'Red'}
});
var greenApple = {
key: '#greenapple',
value: { name: 'Green Apple', color: 'Green' }
};
tree.insertToNode(node, greenApple);
Remove Node
var node = tree.insert({
key: '#apple',
value: { name: 'Apple', color: 'Red'}
});
tree.remove(node);
Search BFS
var node = tree.traverser().searchBFS(function(data){
return data.key === '#apple';
});
Search DFS
var node = tree.traverser().searchDFS(function(data){
return data.key === '#apple';
});
Traverse BFS
tree.traverser().traverseBFS(function(node){
console.log(node.data());
});
Traverse DFS
tree.traverser().traverseDFS(function(node){
console.log(node.data());
});
Find common parent
var commonParent = tree.findCommonParent(fromNode, toNode);
Developers
- Clone this repositoy and
cd
into it npm install
npm run build
to build browserify files OR npm run dev-server
to start a development server.