Pandusha — A clean, modular Python library for fundamental Data Structures & Algorithms. Built incrementally, starting from Linked Lists (SLL & DLL) and expanding towards a complete DSA toolkit.
Project description
Pandusha
Pandusha is a small educational Python library for practicing data structures and algorithms. 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:
Graphwith 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
Pandusha is not published on PyPI yet. 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.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.
0.1.0
- Added initial LinkedList, DoublyLinkedList, Stack, Queue, BinarySearchTree, and Graph implementations.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pandusha-0.2.0.tar.gz.
File metadata
- Download URL: pandusha-0.2.0.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e9ecaacc3c11c045acd209bd5329da5f8e9a34fc14b8ca54a5b2b18c212f3d8
|
|
| MD5 |
db53d76568a7dac3dbe536638ff5a09d
|
|
| BLAKE2b-256 |
80ca1952fae693d5421b4d0c9481419c69c57130bfa72909fe2ae2215e661f68
|
File details
Details for the file pandusha-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pandusha-0.2.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d02470f33e80301ef80dcc6245f513fd3fbb6926b44dd429251ca73de98c5bde
|
|
| MD5 |
9a349bf1f08372dc90b526930d0ad18b
|
|
| BLAKE2b-256 |
940a4fc19fdb7c11c071fa7b34ac3491d5b7c5bfa655c964f132e151860ba295
|