MoreStructures 0.0.7

.NET 6.0
dotnet add package MoreStructures --version 0.0.7
NuGet\Install-Package MoreStructures -Version 0.0.7
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MoreStructures" Version="0.0.7" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MoreStructures --version 0.0.7
#r "nuget: MoreStructures, 0.0.7"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install MoreStructures as a Cake Addin
#addin nuget:?package=MoreStructures&version=0.0.7

// Install MoreStructures as a Cake Tool
#tool nuget:?package=MoreStructures&version=0.0.7

Data structures and algorithms for .NET6

License

MoreStructures is a library of classical algorithms and data structures, written 100% in (safe, managed) C# 10, for .NET 6 and above.

Built for fun and education, it has been implemented with readability and maintenability in mind, minimizing external dependencies and trying to make it easy for everybody to modify and extend.

All its public API are documented and it is fully unit tested, with more than 2400 test scenarios and 100% line and branch coverage.

Data structures implemented include:

  • Stacks: array-list, linked-list;
  • Queues: array-list, linked-list;
  • Priority Queues: array-list, binary heaps, binomial heaps, Fibonacci heaps;
  • Disjoint Sets: quick find, quick union, weighted, path compression;
  • Trees: recursive immutable n-ary trees;
  • Graphs: edge list, adjacency list, adjacency matrix;
  • Suffix Trees: edge compression;
  • Suffix Tries: standard.

Algorithms implemented include:

  • String sorting: counting sort, quicksort;
  • List searching: linear, binary;
  • List sorting: selection, insertion, Shell, heap;
  • String matching: Burrows-Wheeler transform, suffix arrays, Knuth-Morris-Pratt;
  • Tree augmentation: counting;
  • Tree visit: DFS, BFS, in iterative and recursive forms;
  • Graphs visits: DFS, BFS, in iterative and recursive forms;
  • Graphs minimum spanning tree: Kruskal, Prim;
  • Graphs shortest distance: Dijkstra, bidirectional Dijkstra, Bellman-Ford, BFS-based, A*, bidirectional A*;
  • Graphs shortest path: BFS-based;
  • Graphs topological sorting: DFS on each vertex, any path to sink, single DFS sink-based;
  • Graphs strongly connected components: sink-based;
  • Suffix Trees construction: naive, Ukkonen, LCP-based;
  • Suffix Trees matching: exact pattern matching, shortest non-shared substring;
  • Suffix Tries construction: naive;
  • Suffix Tries matching: exact pattern matching.

Install

.NET6 Nuget .NET6 Nuget Pre

Via NuGet Package Manager:

Install-Package MoreStructures

Via dotnet CLI:

dotnet add package MoreStructures

Build

.NET6 Build and Test .NET6 Coverage

Reliability Rating Vulnerabilities Security Rating Maintainability Rating

The latest detailed Tests Report for the .NET Libraries is available here.

The latest detailed Code Coverage Report for the .NET Libraries is available here.

Status

Issues Pull Requests Pull requests Downloads

Documentation

The latest documentation for the .NET Libraries is available here.

Product Versions
.NET net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.7 123 10/2/2022
0.0.6 135 9/27/2022
0.0.5 127 9/27/2022