# Rusty Algorithms and Data Structures

[](https://coveralls.io/github/TianyiShi2001/Algorithms?branch=main)

This repository presents Rust implementation of common algorithms and data structures, most of which are based on William Fiset's Java implementation: https://github.com/williamfiset/Algorithms . I highly recommend [his YouTube channel](https://www.youtube.com/user/purpongie), where he explains many of these algorithms in detail using illustrations, animations and pseudocode.
In addition to implementing W. Fiset's algorithms, I also add original content that might be helpful, such as solutions of classical puzzles e.g. N-Queens and Sudoku.
## Usage
The implementation details are explained in comments and docs and the example usage is implied in unit tests. To run tests:
```
cargo test
```
These algorithms and data structures are not designed for production usage, but might be directly applicable in competitve programming.
## Recommended Environment
- Editor: Visual Studio Code
- Extension: [rust-analyzer](https://github.com/rust-analyzer/rust-analyzer)
This simple setup provides most features a decent IDE would provide (importantly, jump to definition and type labelling)