Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
A library for javascript which contains basic datastructures, algorithms and some generic functionalities which a developer needs
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;
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 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';
Pass the array of numbers/string along with the element which
needs to be found
import { linearSearch } from 'athro';
Sorting functionalities inbuilt in this library are:
Pass the array of numbers/strings which needs to be sorted
import { bubbleSort } from 'athro';
Pass the array of numbers/strings which needs to be sorted
import { selectionSort } from 'athro';
Pass the array of numbers/strings which needs to be sorted
import { insertionSort } from 'athro';
Pass the array of numbers/strings which needs to be sorted
import { mergeSort } from 'athro';
Pass the array of numbers/strings which needs to be sorted
import { quickSort } from 'athro';
Some famous useful data structure:
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() |
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) |
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() |
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() |
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) |
Some famous tree traversals:
Get the nodes of tree breadth/level wise
import { bfs } from 'athro';
Get the nodes of tree as per DFS in order format
import { inOrder } from 'athro';
Get the nodes of tree as per DFS pre order format
import { preOrder } from 'athro';
Get the nodes of tree as per DFS post order format
import { postOrder } from 'athro';
Some generic functions which are often useful while development - saves time:
Pass a string to convert to title case i.e "hello world => Hello World"
import { titleCase } from 'athro';
Pass a decimal/floating point number and decimal places upto which you want to round it to
import { handleDecimal } from 'athro';
Pass date object to convert it to -> sample : Jan 21 2020 format (Month Day Year)
import { beautifyDate } from 'athro';
Pass number to convert to to a much more readable format -> sample : 10186438.12 gets converted to 10,186,438
import { beautifyNumber } from 'athro';
Pass currency code to return the symbol for the currency -> sample : USD gets converted to $
import { currencySymbol } from 'athro';
Pass an array to the function and duplicates values would be removed from the array that is returned.
import { arrayRemoveDuplicates } from 'athro';
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';
Pass an array and an element to count the occurrences of that element in the array.
import { countOccurrences } from 'athro';
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';
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 .
FAQs
A datastructures and algorithms library for TS/JS
The npm package athro receives a total of 61 weekly downloads. As such, athro popularity was classified as not popular.
We found that athro demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.