[![Test Suite Actions status](https://github.com/Jcheez/Jellybeans/workflows/Test%20Suite/badge.svg)](https://github.com/Jcheez/Jellybeans/actions)

# About

Jellybeans aims to provide an easier development process when working with various data structures in python. Visualisations are also provided for sorting algortihms.

# Documentation
[How to use this library?]()

# Installation

1. Ensure that you have python 3.7 and above
2. Run the following command: pip install Jellybeans

# Implementations

Below are the data structures and sorting algorithms that are covered in this library.

## Data Structures

- AVL Tree
- Binary Heap
- Graph
- Singly Linked List
- Tailed Linked List
- Doubly Linked List
- Queue
- Stack
- Union Find Disjoint Sets (UFDS)

## Sorting Algorithms

- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort

## Graphing Algorithms (TBC)

- Reachability
- Number of components
- Topological sort
- Strongly Connected components (SCCs)
- Minimum spanning tree (Prims, Prims-Dense, Kruskal's)
- Single Source Shortest Path (Bellman Ford, One-pass BF, Dijkstra's)
- All Pairs Shortest Path (Floyd Warshall)

# Acknowledgment

I would also like to mention that majority of the knowledge used to develop this library came from the undertaking of National University of Singapore's course CS2040.

# Contributions

Anyone who wishes to value add to this library is welcomed to do so. Check out the [Contribution Guide](https://github.com/Jcheez/Jellybeans/blob/main/CONTRIBUTING.md) for further information on how you can contribute!