New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

data-structures-again

Package Overview
Dependencies
Maintainers
1
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

data-structures-again

A Javascript library of simple data structures

  • 3.3.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
9
decreased by-92.8%
Maintainers
1
Weekly downloads
 
Created
Source

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
  • 2D Tree

Installation and Usage

npm install data-structures-again

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

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'

2d Tree

const { TwoDTree } = require('./index')

const tree = new TwoDTree()
tree.insert(4, 1)
tree.insert(2.5, 1.5)
tree.insert(2.7, 1.7)
tree.insert(4, 3)

             // x1, x2, y1, y2
tree.rangeSearch(2, 3, 1, 2))
/*
[
    [2.5, 1.5],
    [2.7, 1.7],
    [2.6, 1.6]
]
*/

License

MIT.

Keywords

FAQs

Package last updated on 28 Nov 2022

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc