MoreComplexDataStructures is a class library containing a collection of data structures (plus related utility classes) more complex than those found in the standard .NET framework.
The project currently contains the following data structures and utility classes...
WeightBalancedTree<T> - A weight-balanced binary search tree
MinHeap<T> - A tree-based min heap
MaxHeap<T> - A tree-based max heap
PriorityQueue<T> - A tree-based double-ended priority queue
Trie<T> - A trie (or prefix tree)
CharacterTrie - A trie which stores characters (with some performance enhancements over Trie<Char>)
WeightedRandomGenerator<T> - A weighted random number (or item) generator
UniqueRandomGenerator - A random number generator guaranteed to always produce unique numbers within a given range
FrequencyTable<T> - A frequency table
LRUCache<TKey, TValue> - A simple least recently used cache
UnflaggedNumberGenerator - Allows the 'flagging' (marking) of numbers in a specified range, and provides methods to identify numbers which were not flagged
LongIntegerStatusStorer - Stores a boolean status for a complete set of long integers
ListRandomizer - Randomizes the elements of a list using the Fisher/Yates/Knuth algorithm
Install-Package MoreComplexDataStructures -Version 1.8.0
dotnet add package MoreComplexDataStructures --version 1.8.0
<PackageReference Include="MoreComplexDataStructures" Version="1.8.0" />
paket add MoreComplexDataStructures --version 1.8.0
Corrected bug in PriorityQueue class where methods EnqueueAsMax() and EnqueueAsMin() would not always result in items being enqueued as maximum or minimum priority. Now uses class DoubleBinaryIncrementer to ensure that the new priority generated is the binary successor or predecessor to the existing maximum or minimum.
Added MaxPriority and MinPriority properties to the PriorityQueue class.
- No dependencies.
This package is not used by any popular GitHub repositories.