Skip to content

letladi/brass-knuckles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Data Structures for JavaScript

Build Status

This project is under active development ⚡️

brass-knuckles provides many efficient and well-tested data structures:

From the basics:

  • Stack
  • Queue
  • LinkedList
  • OrderedLinkedList
  • DoublyLinkedList

Search trees (The trees follow the 'leaf tree' model; all data is stored in the leaf nodes of the tree):

  • LeafTree (which defines the base class on which most of the trees are based)
  • MultiLeafTree (which is a subclass of LeafTree that defines the base class for trees that allow duplicate value insertions for a single key)

Balanced search trees (with O(logN) performance on insertion, search and deletion):

  • WeightBalancedLeafTree
  • HeightBalancedLeafTree
  • ABTree (a type of BTree)
  • RBTree (a red black tree)
  • LevelLinkedTree
  • SplayTree
  • SkipList

Balanced search trees that allow duplicate value insertion:

  • WeightBalancedMultiLeafTree
  • HeightBalancedMultiLeafTree

Interval Trees

  • IntervalTree
  • SegmentTree
  • orTree (Orthogonal Range Tree)
  • hdSegmentTree (Higher-Dimensional Segment Tree)
  • kdTree

Heaps:

  • Heap
  • HeapOrderedTree
  • halfOrderedTree
  • LeftistHeap
  • SkewHeap
  • BinomialHeap
  • FibonacciHeap
  • DoubleEndedHeap
  • MultidimensionalHeap

String Structures:

  • Trie
  • Dictionary
  • SuffixTree
  • SuffixArray

Hash Tables:

  • HashTable
  • HashTree
  • BloomFilter

License

brass-knuckles is MIT-licensed.

Thanks

Peter Brass for his excellent book on data structures

About

JavaScript Brass Knuckles: Advanced Data Structures

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published