DSA
DSA copied to clipboard
Data structures and algorithms in C#
Data Structures and Algorithms in C#
A personal project with implementations of data structures and algorithms, written in C# and created out of curiosity and for learning purposes.
Requirements
- .NET Standard 2.0 compatible framework
- .NET Core 2.0 (Only if you want to build the Unit Tests project)
Installation
The package with the .NET Standard 2.0 Class Library can be found on NuGet.
Command for NuGet package manager: Install-Package DSA
Command for .NET CLI: dotnet add package DSA
Data Structures
Arrays:
- Hashed Array Tree
- Sparse Matrix
Lists:
- Array List
- Singly-Linked List
- Doubly-Linked List
- Skip List
Stacks:
- Array Stack
- Linked Stack
Queues:
- Array Queue
- Linked Queue
- Min-Priority Queue
- Max-Priority Queue
Heaps:
- Binary Min-Heap
- Binary Max-Heap
- Binomial Min-Heap
- Binomial Max-Heap
- Fibonacci Min-Heap
- Fibonacci Max-Heap
Trees:
- Binary Search Tree
- Binary Search Tree Map
- AVL Tree
- AVL Tree Map
- Red-Black Tree
- Red-Black Tree Map
- Splay Tree
- Splay Tree Map
- Trie(Prefix Tree)
- Trie Map
- Suffix Tree
- Suffix Tree Map
Graphs:
- Undirected Unweighted Graphs
- Adjacency List Graph
- Adjacency Matrix Graph
- Directed Unweighted Graphs
- Directed Adjacency List Graph
- Directed Adjacency Matrix Graph
- Undirected Weighted Graphs
- Weighted Adjacency List Graph
- Weighted Adjacency Matrix Graph
- Directed Weighted Graphs
- Directed Weighted Adjacency List Graph
- Directed Weighted Adjacency Matrix Graph
Algorithms
Sorting:
- Bubble Sort
- Insertion Sort
- Selection Sort
- Shell Sort
- Heap Sort
- Merge Sort
- IList (System.Collections.Generic)
- Linked List (System.Collections.Generic)
- Singly-Linked List
- Doubly-Linked List
- Parallel Merge Sort
- IList (System.Collections.Generic)
- Linked List (System.Collections.Generic)
- Singly-Linked List
- Doubly-Linked List
- Quick Sort
- Quick3 Sort
- Parallel Quick Sort
- Counting Sort
- LSD Radix Sort
- Pigeonhole Sort
Searching:
- Linear Search
- IList (System.Collections.Generic)
- Linked List (System.Collections.Generic)
- Singly-Linked List
- Doubly-Linked List
- Binary Search
- Quick Select
Subsequences:
- Longest Common Subsequence
- Longest Increasing Subsequence
Strings:
- Longest Common Substring
- Edit Distance
- Levenshtein
- Damerau-Levenshtein
- String Search
- Boyer-Moore
- Knuth-Morris-Pratt
- Rabin-Karp
Trees:
- BST Iterative Walker
- BST Recursive Walker
Graphs:
- Bipartite Coloring
- Cycle Detecting
- Tpological Sorting
- Minimum Spanning Tree
- Kruskal
- Prim
- Shortest Paths
- Bellman-Ford
- Dijkstra
Licence
Licenced under the MIT Licence.