Socket
Socket
Sign inDemoInstall

athro

Package Overview
Dependencies
0
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    athro

A library for javascript which contains basic datastructures, algorithms and some generic functionalities which a developer needs


Version published
Maintainers
1
Install size
213 kB
Created

Readme

Source

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:

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

import { binarySearch } from 'athro';
  • Syntax - params: binarySearch(array,element)
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();

MethodsUsageSyntax
insertAdd item to SLLlist.insert(index,value)
removeRemove item from SLLlist.remove(index)
getGet item from SLLlist.get(index)
setUpdate value of item in SLLlist.set(index,value)
reverseReverse the entire SLLlist.reverse()
Doubly Linked List
Usage: import and use the class through its instance methods

import { DoublyLinkedList } from 'athro';

var list = new DoublyLinkedList();

MethodsUsageSyntax
insertAdd item to DLLlist.insert(index,value)
removeRemove item from DLLlist.remove(index)
getGet item from DLLlist.get(index)
setUpdate value of item in DLLlist.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();

MethodsUsageSyntax
enqueueEnqueue an item in the Queue from the rearqueue.enqueue(value)
dequeueDequeue an item from front of the Queuequeue.dequeue()
peekView the item at front of Queuequeue.peek()
isEmptyCheck if the Queue is emptyqueue.isEmpty()
Stack
Usage: import and use the class through its instance methods.
LIFO Datastructure

import { Stack } from 'athro';

var stack = new Stack();

MethodsUsageSyntax
pushAdd an item to top of Stackstack.push(value)
popPop an item from top of stackstack.pop()
topView the item at top of Stackstack.top()
isEmptyCheck if the Stack is emptystack.isEmpty()
Binary Search Tree
Usage: import and use the class through its instance methods.

import { BinarySearchTree } from 'athro';

var tree = new BinarySearchTree();

MethodsUsageSyntax
insertAdd an item to the BSTtree.insert(value)
findFind an item in the BSTtree.find(value)

Tree Traversal

Some famous tree traversals:

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

  • Arneesh Aima - MySocials - LinkedIn
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 .

Keywords

FAQs

Last updated on 25 Jun 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc