Skip to main content

A beginner-friendly Python library for learning, practicing, and observing data structures and algorithms.

Project description

Pandusha

Pandusha is a beginner-friendly educational Python library for learning, practicing, and observing data structures and algorithms. It is built by Cem Berk Çakır and Yasemin Serdengeçti as a shared DSA learning project.

Version 0.2 focuses on a stable, test-covered foundation: linked lists were cleaned up, Pythonic helpers were added, and the roadmap now includes heaps, hash tables, tries, graph algorithms, sorting, searching, and dynamic programming examples.

Current Content

  • Linked lists: LinkedList, DoublyLinkedList
  • Linear structures: Stack, Queue
  • Trees: BinarySearchTree, AVLTree
  • Graphs: Graph with BFS, DFS, unweighted shortest path, Dijkstra, and topological sort
  • Other structures: MinHeap, MaxHeap, PriorityQueue, HashTable, Trie, DisjointSet
  • Sorting: bubble_sort, selection_sort, insertion_sort, merge_sort, quick_sort, heap_sort
  • Searching: linear_search, binary_search, jump_search
  • Dynamic programming: fibonacci_memo, fibonacci_tabulation, climbing_stairs, coin_change_min

Installation

Install from PyPI:

python3 -m pip install pandusha

Or use the source directly:

git clone https://github.com/Agueria/pandusha.git
cd pandusha

For local development:

python3 -m pip install -e .
python3 -m pytest -q
python3 -m compileall src tests

Without editable install, run examples with PYTHONPATH=src.

Examples

from pandusha import LinkedList, MinHeap, binary_search, merge_sort

linked = LinkedList(1)
linked.append(2)
linked.append(3)
print(list(linked))  # [1, 2, 3]

heap = MinHeap([5, 1, 3])
print(heap.remove())  # 1

print(merge_sort([3, 1, 2]))  # [1, 2, 3]
print(binary_search([1, 2, 3], 2))  # 1

API Style

Existing educational method names are kept where possible. Pythonic helpers are also available on the relevant structures:

  • len(structure)
  • list(structure)
  • repr(structure)
  • is_empty()
  • to_list()
  • clear() for linked lists

License

Pandusha is distributed under the Apache License 2.0. See LICENSE.

Changelog

0.2.1

  • Refined PyPI package metadata and project description.
  • Corrected package author order to Cem Berk Çakır, Yasemin Serdengeçti.
  • Kept the public API unchanged from 0.2.0.

0.2.0

  • Fixed linked list and doubly linked list edge cases.
  • Added Pythonic helpers and controlled package exports.
  • Added Heap, HashTable, Trie, DisjointSet, and AVLTree.
  • Added sorting, searching, graph, BST traversal, and DP helpers.
  • Added pytest coverage for public behavior and examples.
  • Updated docs and package metadata.
  • Published on PyPI as pandusha.

0.1.0

  • Added initial LinkedList, DoublyLinkedList, Stack, Queue, BinarySearchTree, and Graph implementations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pandusha-0.2.1.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pandusha-0.2.1-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file pandusha-0.2.1.tar.gz.

File metadata

  • Download URL: pandusha-0.2.1.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandusha-0.2.1.tar.gz
Algorithm Hash digest
SHA256 fba02018fca0c0beb10de98263742cc028ff7d634146e44ba383d459a87ebe51
MD5 a520c2ced49b71d8e30c3e8dc9bdd2d1
BLAKE2b-256 5aa3b4784b924da431f0285f0291b7b500903337026b653433c080bb0637d9df

See more details on using hashes here.

File details

Details for the file pandusha-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pandusha-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandusha-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 61757f36bd9ed45069ca0328969cfe94cb5769c5d5c2434a9e4617fe10619e19
MD5 618d9673972356cdc178902b25c5a090
BLAKE2b-256 dcabad36525cc631e7f934cf3e510432839eba463ce9ca0bf937300d3ff5d605

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page