Skip to content

Latest commit

 

History

History
91 lines (70 loc) · 2.44 KB

README.md

File metadata and controls

91 lines (70 loc) · 2.44 KB

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