Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

athro

1.5.4 • Public • Published

Data Structures | Algorithms | Generics

A library for javascript which contains basic data structures, algorithms and some generic functions which a developer needs.

Recent Updates: Singly Linked List, Doubly Linked List, Queue, Stack, Binary Search Tree and Tree Traversals.

Note: Kindly keep updating the library every now and then as I am frequently adding new stuff to the library.

You can Update the library in your project by running the following command in the directory of your project which contains the file - package.json :

npm update athro;

Functionalities

This sections explains the functionalities provided by this library. This library can be used along with any other javascript framework/library such as Angular, React, Vue etc.

Note: All the imports mentioned in the sections below follow Javascript ES6 Format. If you want to use this library inside frameworks which still use CommonJS and do not support ES6 import/export you can use the library's functions in the traditional way - For Example:

var athro = require("athro");
athro.binarySearch(array,number);

Searching

Searching functionalities inbuilt in this library are:

Binary Search

Pass the array of numbers/string along with the element which
needs to be found

import { binarySearch } from 'athro';
  • Syntax - params: binarySearch(array,element)

Linear Search

Pass the array of numbers/string along with the element which
needs to be found

import { linearSearch } from 'athro';
  • Syntax - params: linearSearch(array,element)

Sorting

Sorting functionalities inbuilt in this library are:

Bubble Sort

Pass the array of numbers/strings which needs to be sorted

import { bubbleSort } from 'athro';
  • Syntax - params: bubbleSort(array)

Selection Sort

Pass the array of numbers/strings which needs to be sorted

import { selectionSort } from 'athro';
  • Syntax - params: selectionSort(array)

Insertion Sort

Pass the array of numbers/strings which needs to be sorted

import { insertionSort } from 'athro';
  • Syntax - params: insertionSort(array)

Merge Sort

Pass the array of numbers/strings which needs to be sorted

import { mergeSort } from 'athro';
  • Syntax - params: mergeSort(array)

Quick Sort

Pass the array of numbers/strings which needs to be sorted

import { quickSort } from 'athro';
  • Syntax - params: quickSort(array)

Data Structures

Some famous useful data structure:

Singly Linked List

Usage: import and use the class through its instance methods

import { SinglyLinkedList } from 'athro';

var list = new SinglyLinkedList();

Methods Usage Syntax
insert Add item to SLL list.insert(index,value)
remove Remove item from SLL list.remove(index)
get Get item from SLL list.get(index)
set Update value of item in SLL list.set(index,value)
reverse Reverse the entire SLL list.reverse()

Doubly Linked List

Usage: import and use the class through its instance methods

import { DoublyLinkedList } from 'athro';

var list = new DoublyLinkedList();

Methods Usage Syntax
insert Add item to DLL list.insert(index,value)
remove Remove item from DLL list.remove(index)
get Get item from DLL list.get(index)
set Update value of item in DLL list.set(index,value)

Queue

Usage: import and use the class through its instance methods.
FIFO : Insert from "Rear" extract from "Front"

import { Queue } from 'athro';

var queue = new Queue();

Methods Usage Syntax
enqueue Enqueue an item in the Queue from the rear queue.enqueue(value)
dequeue Dequeue an item from front of the Queue queue.dequeue()
peek View the item at front of Queue queue.peek()
isEmpty Check if the Queue is empty queue.isEmpty()

Stack

Usage: import and use the class through its instance methods.
LIFO Datastructure

import { Stack } from 'athro';

var stack = new Stack();

Methods Usage Syntax
push Add an item to top of Stack stack.push(value)
pop Pop an item from top of stack stack.pop()
top View the item at top of Stack stack.top()
isEmpty Check if the Stack is empty stack.isEmpty()

Binary Search Tree

Usage: import and use the class through its instance methods.

import { BinarySearchTree } from 'athro';

var tree = new BinarySearchTree();

Methods Usage Syntax
insert Add an item to the BST tree.insert(value)
find Find an item in the BST tree.find(value)

Tree Traversal

Some famous tree traversals:

Breadth First Search

Get the nodes of tree breadth/level wise

import { bfs } from 'athro';
  • Syntax - params: bfs(root)

Depth First Search - In Order

Get the nodes of tree as per DFS in order format

import { inOrder } from 'athro';
  • Syntax - params: inOrder(root)

Depth First Search - Pre Order

Get the nodes of tree as per DFS pre order format

import { preOrder } from 'athro';
  • Syntax - params: preOrder(root)

Depth First Search - Post Order

Get the nodes of tree as per DFS post order format

import { postOrder } from 'athro';
  • Syntax - params: postOrder(root)

Generics

Some generic functions which are often useful while development - saves time:

Title Case

Pass a string to convert to title case i.e "hello world  => Hello World"

import { titleCase } from 'athro';
  • Syntax - params: titleCase(array)

Decimal Handler

Pass a decimal/floating point number and decimal places upto which you want to round it to

import { handleDecimal } from 'athro';
  • Syntax - params: handleDecimal(number,decimal)

Beautify Date

Pass date object to convert it to -> sample : Jan 21 2020 format (Month Day Year)

import { beautifyDate } from 'athro';
  • Syntax - params: beautifyDate(date)

Beautify Number

Pass number to convert to to a much more readable format -> sample : 10186438.12 gets converted to 10,186,438

import { beautifyNumber } from 'athro';
  • Syntax - params: beautifyNumber(number)

Currency Symbol

Pass currency code to return the symbol for the currency -> sample : USD gets converted to $

import { currencySymbol } from 'athro';
  • Syntax - params: currencySymbol(code)

Array Remove Duplicates

Pass an array to the function and duplicates values would be removed from the array that is returned.

import { arrayRemoveDuplicates } from 'athro';
  • Syntax - params: arrayRemoveDuplicates(array)

Array Difference

Pass two arrays to the function and their difference is returned -> sample : pass ([1,2,6,9,4,3],[1,2,6,3]) returned array is [9,4].

import { arrayDifference } from 'athro';
  • Syntax - params: arrayDifference(array1,array2)

Count Occurrences

Pass an array and an element to count the occurrences of that element in the array.

import { countOccurrences } from 'athro';
  • Syntax - params: countOccurrences(array,element)

Bifurcate Array

Pass an array and a bifurcation function by which the array is supposed to be converted into two separate arrays.
sample -> passing (['chair', 'chart', 'chin', 'king'], x => x[0] === 'c') returns [ ['chair', 'chart', 'chin'], ['king'] ]

import { bifurcateArray } from 'athro';
  • Syntax - params: bifurcateArray(array,fn)

Author

Experienced Full Stack/ML Engineer and passionate Blogger.
Highly skilled in Computer Vision, NLP, Statistical Analysis,
ReactJS, NodeJS, ELK Stack, Kubernetes.

Follow Me On Medium MyMedium for exciting Tech Blogs .

Install

npm i athro

DownloadsWeekly Downloads

8

Version

1.5.4

License

ISC

Unpacked Size

218 kB

Total Files

33

Last publish

Collaborators

  • avatar