C# Data Structures and Algorithm Library
-
Complex- complex number implementation with operator overloads -
DisjointSet- disjoint-set with almost constant amortized time per operation link -
Heap<T>- heap link -
MultiSet<T>- C# implementation of std::multiset link -
Quaternion- quaternion implementation with operator overloads -
RBTree<K, V, A>- red-black tree with augmentation link -
SegTree<T>- segment (interval) tree, which allows custom associative function link -
SuffixTree<T>- suffix tree with O(n) construction link link -
Trie<T>- prefix tree link
-
Arrays:
-
Combinatorics:
- inversion count, next permutation
-
FFT - Fast Fourier Transform link
-
Geometry:
-
Convex hull - Andrew's algorithm in O(n log n) link
-
area, line intersection, linear transformation, distance from point to line
-
-
Graph:
-
Number Theory:
- base conversion, Euler totient function, prime factorization, greatest common divisor, fast exponentiation