Nebulous Pumpkin Moons

    data-structures-again

    2.5.0 • Public • Published

    Data Structures Again

    Coverage Status npm version

    Light weight javascript data structures library

    • Binary Search Tree
    • Stack
    • Queue
    • Heap
    • Graph
    • Disjoint Set
    • HashSet
    • Red Black Balanced Search Tree

    Installation and Usage

    npm install data-structures-again

    Red Black Balanced Search Tree:

    const { RedBlackBST } = require('./index')
    
    const tree = new RedBlackBST()
    tree.set(1, 'a')
    tree.set(2, 'b')
    
    tree.get(1) // 'a'
    tree.get(2) // 'b'

    Binary Search Tree:

    const { BST } = require('data-structures-again')
    
    const bst = new BST()
    bst.insert(2)
    bst.insert(1)
    const node = bst.search(1) // { data: 1, left: null, right: null }
    bst.delete(1)

    Stack

    const { Stack } = require('data-structures-again')
    
    const stack = new Stack()
    stack.push(1)
    stack.push(2)
    const data = stack.pop() // 2
    const top = stack.peek() // 1

    Queue

    const { Queue } = require('data-structures-again')
    
    const queue = new Queue()
    queue.enqueue(1)
    queue.enqueue(2)
    const data = queue.dequeue() // 1
    const top = queue.peek() // 2

    Heap

    const { Heap } = require('data-structures-again')
    
    const minHeap = new Heap()
    minHeap.push(5)
    minHeap.push(2)
    minHeap.peek() // 2
    
    const maxHeap = new Heap((a, b) => b - a)
    maxHeap.push(4)
    maxHeap.push(10)
    maxHeap.peek() // 10

    Graph

    const { Graph } = require('data-structures-again')
    
    const graph = new Graph()
    
    /*
        a---b
        |  /    
        | /
        c
    */
    
    graph.addVertex('a')
    graph.addVertex('b')
    graph.addVertex('c')
    
    graph.addEdge('a', 'c') // add weight using graph.addEdge('a', 'c', 10)
    graph.addEdge('c', 'b')
    graph.addEdge('a', 'b')
    
    const output = []
    graph.dfs('a', vertex => output.push(vertex.name)) // ['a', 'c', 'b']

    Disjoint Set(Union-find)

    const { DisjointSet } = require('data-structures-again')
    
    const ds = new DisjointSet()
    ds.union('a', 'b')
    ds.union('b', 'c')
    ds.union('d', 'c')
    
    ds.find('d') // 'a'
    ds.isConnected('a', 'd') // true

    HashSet

    const { HashSet } = require("data-structures-again");
    
    const set = new HashSet()
    set.add(1)
    set.add(2)
    
    set.has(1) // true
    set.has(2) // true
    set.has(3)) // false

    License

    MIT.

    Install

    npm i data-structures-again

    DownloadsWeekly Downloads

    7

    Version

    2.5.0

    License

    MIT

    Unpacked Size

    221 kB

    Total Files

    40

    Last publish

    Collaborators

    • d333y