Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    data-treepublic

    Build Status npm version Dependency Status devDependency Status Gitter

    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

    // 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'}
    });

    Create and append node to a parent node that satisfies the given criteria

    // 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);

    Create and append node using parent node's instance

    // 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);

    Remove Node

    // Insert Node
    var node = tree.insert({
      key: '#apple',
      value: { name: 'Apple', color: 'Red'}
    });
     
    // Remove it
    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

    1. Clone this repositoy and cd into it
    2. npm install
    3. npm run build to build browserify files OR npm run dev-server to start a development server.

    install

    npm i data-tree

    Downloadsweekly downloads

    290

    version

    1.2.4

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar