Python Data Structures by slav_EEik
===================================

## About the project

This is a simple datastructures and algorithms library. It is also published on [PyPi](https://pypi.org/project/slav-eeik-datastructures/).

You can see the automatically-generated **documentation on [GitHub Pages](https://zhukovrost.github.io/datastructures/)**.

Here are all implemented datastructures:
- Lists
  - Singly Linked List
  - Doubly Linked List
  - Static Array

- Linear Structures
  - Stack
  - Queue
  - Deque

- Heaps
  - Min Heap
  - Priority Queue

- Trees and Tree Nodes
  - Binary Tree
  - Balancing Tree
  - Binary Search Tree
  - Segment Tree 
  - AVL Tree
  - Trie

- Graphs
  - Adjacency List
  - Adjacency Matrix

You can also utilize **nodes** of these structures in your projects.

Here are all implemented algorithms:

- Sorting Algorithms:
    - Heap Sort
    - Bubble Sort
    - Quick Sort
    - Merge Sort
    - Insertion Sort
    - Selection sort
 
- String search algorithms:
  - Brute Force Search
  - Rabin-Karp Algorithm
  
- Tree Algorithms:
  - Tree balancing

- Graphs Algorithms:
  - Dijkstra algorithm
  - Bellman-Ford's algorithm
  - A* Algorithm
  - Breadth First Search
  - Depth First Search

## Installation

```sh
pip install --upgrade pip
pip install slav-eeik-datastructures
```

## Modules:

![Project Structure](https://github.com/zhukovrost/datastructures/blob/master/datastructures.svg)

## License
This project is licensed under the MIT License - see the [LICENSE file](https://github.com/zhukovrost/datastructures/blob/master/LICENSE) for details.

## Contacts
For any inquiries, please reach out to the project maintainer on [GitHub](https://github.com/zhukovrost) or [Telegram](https://t.me/slav_EEik).
