2.0.4 • Published 1 year ago

algorithmlib v2.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Overview

Algorithmlib is an algorithm library that supports Common. js and ES module syntax. It can be applied to Node.js projects or projects built through ES modules to reduce the time spent in handwriting data structures or algorithms in JavaScript or TypeScript projects.

Quick Start Guide

Install

npm install algorithmlib

Demo

  1. Import Stack through ES module syntax
import { Stack } from 'algorithmlib'
let a = new Stack()
a.push('element')
a.pop()
  1. Import Stack through Common.js syntax
const { Stack } = require('algorithmlib')
let a = new Stack()
a.push('element')
a.pop()
  1. Import Stack through <script> tag
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./node_modules/algorithmlib/dist/index.iife.js"></script>
</head>
<body>
    <script>
        const { Stack } = algorithmlib
        let a = new Stack()
        a.push('element')
        a.pop()
    </script>
</body>
</html>

API Reference

Stack\

  • pop(): T | undefined
  • push(element: T): Stack\
  • isEmpty(): boolean

Queue\

  • dequeue(): T | undefined
  • enqueue(element: T): Queue\
  • isEmpty(): boolean

LinkedList\

  • indexOf(element: T): number
  • insert(element: T, index?: number): LinkedList\
  • remove(index: number): boolean
  • isEmpty(): boolean

HashTable<K extends number | string, V>

  • get(key: K): V | undefined
  • set(key: K, value: V): HashTable<K, V>
  • remove(key: K): boolean
  • isEmpty(): boolean

BinarySearchTree\

  • min(): BinarySearchTreeNode\ | null
  • max(): BinarySearchTreeNode\ | null
  • minNode(node: BinarySearchTreeNode\ | null): BinarySearchTreeNode\ | null
  • maxNode(node: BinarySearchTreeNode\ | null): BinarySearchTreeNode\ | null
  • insert(index: number, element: T): BinarySearchTree\
  • search(index: number): boolean
  • remove(index: number): boolean
  • isEmpty(): boolean

Binary Tree Traversal

  • preOrderTraversal: \(tree: BinarySearchTree\) => { index: number; element: T }[]
  • postOrderTraversal: \(tree: BinarySearchTree\) => { index: number; element: T }[]
  • inOrderTraversal: \(tree: BinarySearchTree\) => { index: number; element: T }[]
  • levelOrderTraversal: \(tree: BinarySearchTree\) => { index: number; element: T }[][]

Graph\

  • addVertex(...vertices: K[]): Graph\
  • addEdge(v: K, edges: Array<K, number | null>): Graph\
  • removeVertex(v: K): Graph\
  • removeEdge(v: K, w: K): Graph\

Graph Traversal

  • breadthFirstSearch: \(graph: Graph\, startVertex: K) => K[]
  • depthFirstSearch: \(graph: Graph\, startVertex: K) => K[]

Sort Algorithm

  • bubbleSort\: (array: T[], compare?: sortedCallbackFuction\) => T[];
  • insertSort\: (array: T[], compare?: sortedCallbackFuction\) => T[];
  • quickSort\: (array: T[], compare?: sortedCallbackFuction\) => T[];
  • mergeSort\: (array: T[], compare?: sortedCallbackFuction\) => T[];

Search Algorithm

  • binarySearch\: (array: T[], target: number | { key: string: number }) => number | boolean

License

MIT

Copyright (c) 2023-present Steve Yang

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.1.0

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.2

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago

0.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago