## 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:

### Lists:

### Stacks:

### Queues:

### 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
- Directed Unweighted Graphs
- Undirected Weighted Graphs
- Directed Weighted Graphs

## Algorithms

### Sorting:

- Heap Sort
- Merge Sort
- Parallel Merge Sort
- Quick Sort
- Quick3 Sort
- Parallel Quick Sort

### Searching:

- Linear Search
- Binary Search
- Quick Select

### Subsequences:

### Strings:

- Longest Common Substring
- Edit Distance
- String Search

### Trees:

### Graphs:

- Minimum Spanning Tree
- Shortest Paths

## Licence

Licenced under the MIT Licence.