Experimental playground for various algorithms and data structures written in .NET Core and C#.
-
Generic Data structures
- AVLTree
- BinarySearchTree
- breadth-first traversal
- depth-first traversal (in-order, pre-order and post-order)
- Graph
- Search (breadth-first, depth-first)
- Find shortest paths using Dijkstra and Bellman-Ford
- Topological sort
- HashMap
- Heap (min-heap and max-heap)
- LinkedList
- PriorityQueue
- Queue
- Stack
-
Sorting
- AVL sort
- bucket sort
- counting sort
- heapsort
- insertion sort
- mergesort
- quicksort
- radix sort
-
Distance
- Document distance using dot product of vectors
- Levenshtein
- Wagner-Fischer
-
Numbers
- Catalan numbers
- Heap's Algorithm for finding permutations of a list of integers
- General prime number test
- Lucas-Lehmer Mersenne prime number test
- Sieve of Eratosthenes
-
Strings
- Karp Rabin search
- permutation finder
- palindrome check
- Source/EBAlgorithms - class library containing the algorithms.
- Source/Console - console application for random tests during development.
- UnitTests - unit tests for the library.
To run the console program:
cd Source\Console
dotnet run
To run the unit tests:
cd UnitTests
dotnet test
To build all the projects from the root folder:
dotnet build **/project.json