# omkarpathak/data-structures-using-python

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/omkarpathak-data-structures-using-python).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

971 stars · 433 forks · Jupyter Notebook · GPL-3.0

## Links

- GitHub: https://github.com/OmkarPathak/Data-Structures-using-Python
- awesome-repositories: https://awesome-repositories.com/repository/omkarpathak-data-structures-using-python.md

## Topics

`algorithms` `data-structures` `hacktoberfest` `hacktoberfest2018` `python3`

## Description

Data-Structures-using-Python is a code repository providing educational implementations of classic data structures, searching, sorting, and graph algorithms. It serves as a collection of foundational computing concepts built entirely in Python.

The project covers a wide array of linear and hierarchical collections, including heaps, priority queues, binary search trees, graphs, linked lists, stacks, and queues. It also implements matrix operations, sequential storage, and dynamic programming techniques. 

The implementation relies entirely on native Python code, utilizing contiguous array storage, index-based heap ordering, object-oriented node linking, and recursive function evaluations to solve classic computational and algorithmic challenges.

## Tags

### Education & Learning Resources

- [Pythonic Data Structures](https://awesome-repositories.com/f/education-learning-resources/data-structure-design/pythonic-data-structures.md) — Builds and studies fundamental data structures and algorithms using Python for education and technical interview preparation.
- [Graph and Tree Algorithms](https://awesome-repositories.com/f/education-learning-resources/graph-and-tree-algorithms.md) — Navigates hierarchical and network datasets using tree traversals, shortest path algorithms, and cycle detection techniques.
- [Recursive Problem Solving](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/algorithmic-problem-solving/recursive-problem-solving.md) — Solves complex hierarchical and dynamic programming problems by breaking them down into self-referential function calls with base cases.

### Part of an Awesome List

- [Educational Python Implementations](https://awesome-repositories.com/f/awesome-lists/devtools/frontend-frameworks/no-framework-frontends/pure-language-implementations/educational-python-implementations.md) — Implements core data structures and algorithms from scratch in native Python without relying on external compiled extension libraries.

### Programming Languages & Runtimes

- [LIFO Stacks](https://awesome-repositories.com/f/programming-languages-runtimes/lifo-stacks.md) — Manages ordered data processing sequences using stack and queue variants including circular, double-ended, and priority structures. ([source](https://github.com/omkarpathak/data-structures-using-python#readme))
- [Heaps](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/hierarchical-tree-structures/heaps.md) — Maintains min and max priority orders in heap data structures to efficiently organize elements and execute sorting algorithms. ([source](https://github.com/omkarpathak/data-structures-using-python#readme))
- [Algorithm Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/algorithm-implementations.md) — Provides a code repository implementing searching, sorting, graph traversal, and dynamic programming algorithms in Python.
- [Linear Data Structures](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/linear-collections/linear-data-structures.md) — Supports sequential item storage and matrix operations including rotation, reversal, searching, and element calculations. ([source](https://github.com/omkarpathak/data-structures-using-python#readme))

### Software Engineering & Architecture

- [Algorithmic Problem Solving](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving.md) — Solves classic computing problems and dynamic programming challenges with optimized Python code and algorithms.
- [Sequence DP Solutions](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving/sequence-dp-solutions.md) — Implements optimized dynamic programming solutions for sequential computing challenges such as subsequences and minimum coin counts. ([source](https://github.com/omkarpathak/data-structures-using-python#readme))
- [Heaps](https://awesome-repositories.com/f/software-engineering-architecture/heaps.md) — Maintains binary heap priority invariants by mapping tree hierarchies directly into flat array indices via mathematical offsets.
- [Hierarchical Data Structures](https://awesome-repositories.com/f/software-engineering-architecture/hierarchical-data-structures.md) — Organizes complex data using trees, binary search trees, and graphs supporting traversals, cycle detection, and pathfinding. ([source](https://github.com/omkarpathak/data-structures-using-python#readme))
- [Doubly-Linked List Removals](https://awesome-repositories.com/f/software-engineering-architecture/linked-lists/node-removal-techniques/doubly-linked-list-removals.md) — Manages linear sequences of connected nodes in singly and doubly linked formats to compute sequence lengths and support order reversals. ([source](https://github.com/omkarpathak/data-structures-using-python#readme))
- [Linked List Mid-Node Deletions](https://awesome-repositories.com/f/software-engineering-architecture/linked-lists/node-removal-techniques/doubly-linked-list-removals/linked-list-mid-node-deletions.md) — Connects discrete node objects through explicit reference pointers to build dynamic, pointer-based linked lists and tree structures.

### Scientific & Mathematical Computing

- [Typed Array Matrix Containers](https://awesome-repositories.com/f/scientific-mathematical-computing/numpy-array-integration/array-based-data-containers/typed-array-matrix-containers.md) — Stores ordered elements in contiguous linear memory allocations using native collection types for indexing and matrix operations.
