namastey-tree
v1.0.0
Published
A JavaScript package that provides an implementation of the Tree data structure, featuring essential methods for tree operations and manipulations.
Downloads
9
Maintainers
Readme
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