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