1.0.0 • Published 10 months ago

namastey-tree v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

namastey-tree

Brief Description

namastey-tree is a JavaScript package that provides a simple and efficient implementation of the Tree data structure. It includes essential methods for working with trees, making it easy to add, search, traverse, and manipulate tree nodes.

Features

  • addChild(value): Adds a child node with the specified value to the current node.
  • dfs(callback): Performs a Depth-First Search (DFS) on the tree, applying the given callback function to each node.
  • bfs(callback): Performs a Breadth-First Search (BFS) on the tree, applying the given callback function to each node.
  • find(value): Searches for a node by its value using DFS and returns the node if found.
  • countNodes(): Counts and returns the total number of nodes in the tree.
  • getHeight(): Returns the height of the tree.
  • printTree(): Prints the tree structure in a readable format.

Installation

To install the package globally, run the following command:

npm install -g namastey-tree

Examples

const TreeNode = require('namastey-tree');

// Create the root node
const root = new TreeNode('Root');

// Add child nodes
const child1 = root.addChild('Child 1');
const child2 = root.addChild('Child 2');
const child3 = child1.addChild('Child 1.1');
root.addChild('Child 3');

// Print the tree structure
root.printTree();
// Output:
// Root
//   Child 1
//     Child 1.1
//   Child 2
//   Child 3

// Find a node by value
const foundNode = root.find('Child 1.1');
console.log(foundNode ? foundNode.value : 'Node not found'); // Output: Child 1.1

// Count the total number of nodes
console.log('Total Nodes:', root.countNodes()); // Output: Total Nodes: 5

// Get the height of the tree
console.log('Tree Height:', root.getHeight()); // Output: Tree Height: 3

// Perform DFS
root.dfs(node => console.log('DFS:', node.value));
// Output: DFS: Root, DFS: Child 1, DFS: Child 1.1, DFS: Child 2, DFS: Child 3

// Perform BFS
root.bfs(node => console.log('BFS:', node.value));
// Output: BFS: Root, BFS: Child 1, BFS: Child 2, BFS: Child 3, BFS: Child 1.1