v1.0.26-alpha
Pre-release
Pre-release
New Features:
HeapArray<T, TCompare>
->MinimumCapacity
[property] added setter
Bug Fixes:
Console.IntMenu
fixed bug where a hard coded value was used instead of theinvalidMessage
parameterHeapArray<T, TCompare>
added exception checks for invalid minimum capacity values
Changes:
- many
Towel.DataStructures
namespace interfaces, types, and methods were redesignedIDataStructure<T>
->void Stepper(Action<T> step)
[method] removed handled via extension methodsIDataStructure<T>
->StepStatus Stepper(Func<T, StepStatus> step)
[method] removed handled via extension methodsIDataStructure<T>
->StepStatus StepperBreak<TStep>(TStep step = default)
[method] addedISortedBinaryTree<T>
[interface] addedIAvlTree<T>
[interface] addedAvlTreeLinked<T>
[class] removed converted to static factory methodsIRedBlackTree<T>
[interface] addedRedBlackTreeLinked<T>
[class] removed converted to static factory methodsTreeMap<T>
->TreeMap<T, TEquate, THash>
[class] generic arguments changedHeapArray<T>
[class] removed converted to static factory methodsSetHashLinked<T>
[class] removed converted to static factory methodsGraphMap<T>
->GraphMap<T, TEquate, THash>
[class] generic arguments changedMapHashLinked<T, K>
[class] removed converted to static factory methodsDataStructure.IEquating<K>
removed frominterface IMap<T, K>
[interface]IEquating<T>
->IEquating<T, TEquate>
[interface] generic arguments changedIHashing<T>
->IHashing<T, THash>
[interface] generic arguments changedGraphSetOmnitree<T>
->GraphSetOmnitree<T, TEquate, THash>
[class] generic arguments changed- Note: a
TCompare
generic argument will be added in a future version when the Omnitree rewrite is complete
- Note: a
GraphWeightedMap<V, W>
->GraphWeightedMap<V, W, TEquate, THash>
[class] generic arguments changed
In place of types with reduced generic parameters, "New" static factory methods were added for data structures with functional generic parameters. For example, instead of
var tree = new AvlTreeLinked<T>();
you now dovar tree = AvlTreeLinked.New<T>();
. Static factory methods are more modular that creating custom types for purposes of defaulting generic parameters.
Multiple methods not listed above were converted to "TryXxx" patterns for better versatility and exception handling.