go-datastructures: github.com/Workiva/go-datastructures Index | Files | Directories

package datastructures

import "github.com/Workiva/go-datastructures"

Package datastructures exists solely to aid consumers of the go-datastructures library when using dependency managers. Depman, for instance, will work correctly with any datastructure by simply importing this package instead of each subpackage individually.

For more information about the datastructures package, see the README at



Package Files



augmentedtreePackage augmentedtree is designed to be useful when checking for intersection of ranges in n-dimensions.
bitarrayPackage bitarray implements a bit array.
btree/immutablePackage btree provides a very specific set implementation for k/v lookup.
btree/palmPackage palm implements parallel architecture-friendly latch-free modifications (PALM).
btree/plusPackage btree/plus implements the ubiquitous B+ tree.
fibheapPackage fibheap is an implementation of a priority queue backed by a Fibonacci heap, as described by Fredman and Tarjan.
futuresPackage futures is useful for broadcasting an identical message to a multitude of listeners as opposed to channels which will choose a listener at random if multiple listeners are listening to the same channel.
graphPackage graph provides graph implementations.
hashmap/fastintegerPackage fastinteger is designed to provide a very primitive implementation of a hash map for unsigned integer keys and values.
listPackage list provides list implementations.
numerics/hilbertPackage Hilbert is designed to allow consumers to find the Hilbert distance on the Hilbert curve if given a 2 dimensional coordinate.
queuePackage queue includes a regular queue and a priority queue.
rangetreePackage rangetree is designed to store n-dimensional data in an easy-to-query way.
rangetree/skiplistPackage skiplist implements an n-dimensional rangetree based on a skip list.
rtree/hilbertPackage hilbert implements a Hilbert R-tree based on PALM principles to improve multithreaded performance.
slicePackage Int64 simply adds an Int64-typed version of the standard library's sort/IntSlice implementation.
slice/skipPackage skip defines a skiplist datastructure.
threadsafe/errPackage err implements a threadsafe error interface.
tree/avlPackage avl includes an immutable AVL tree.
trie/ctriePackage ctrie provides an implementation of the Ctrie data structure, which is a concurrent, lock-free hash trie.
trie/dtriePackage dtrie provides an implementation of the dtrie data structure, which is a persistent hash trie that dynamically expands or shrinks to provide efficient memory allocation.
trie/xfastPackage xfast provides access to a sorted tree that treats integers as if they were words of m bits, where m can be 8, 16, 32, or 64.
trie/yfastPackage yfast implements a y-fast trie.

Package datastructures imports 19 packages (graph). Updated 2020-08-11. Refresh now. Tools for package owners.