Visualize Data Structures in real time — Python TUI + C++ backend
Project description
Features
- 9 data structures with live ASCII visualization
- C++23 backend binaries via subprocess bridge
- Real-time operation log with color-coded responses
- DS info screen for summary, Big O, pros/cons, usage
- Search and filter modules from the menu
- Min/Max heap toggle
- Cross-platform support (Linux, Windows, macOS)
- Zero-config install via pipx
What is it
TraceDSA is a terminal user interface that wraps custom C++23 data structure implementations in an interactive Python TUI. It lets you explore how stacks, queues, trees, and heaps behave with live ASCII art, operation logging, and instant feedback after every command.
Install & Run
pip install tracedsa
tdsa
Or for Modern Linux distros:
python3 -m venv .venv
source .venv/bin/activate
pip install tracedsa
tdsa
Press s or click START on the splash screen.
Data Structures
| Category | Implementations | Visualization |
|---|---|---|
| Stack | Array, Linked List | Vertical |
| Queue | Array, Linked List, Circular | Horizontal |
| Linked List | Singly, Doubly | Arrow nodes |
| BST | Binary Search Tree | Sideways tree |
| Heap | Min-Heap, Max-Heap | Tree + Array |
How it works
TraceDSA spawns standalone C++23 binaries and communicates via a simple stdin/stdout protocol. The Python Textual TUI sends commands (PUSH 10, ENQUEUE 5, etc.) and updates visualizations instantly. No STL containers everything built from scratch.
Project Architecture
TraceDSA/
├── C++ Core (no STL containers)
│ ├── ArrayList/ (header-only dynamic array)
│ ├── Stack/, Queue/, LinkedList/, BST/, PriorityQueue/
│ └── *_interactive.cpp (stdin/stdout bridge)
│
├── tracedsa/ (Python TUI)
│ ├── __main__.py
│ ├── bridge.py
│ ├── screens/
│ ├── widgets/ (ascii_array, ascii_tree, ascii_heap, etc.)
│ └── bins/{linux,windows,macos}/ ← compiled binaries
|
└── makefiles/
| ├── Makefile (Running the TestingModules.cpp file)
| ├── makefile.windows (build Windows binaries with MinGW)
| ├── makefile.inter (build C++ interactive binaries for Linux)
| └── makefile.macos (build macOS binaries with clang)
|
└── pyproject.toml (package config for pipx installation)
└── docs/ (screenshots, architecture diagrams, design docs)
Development
Prerequisites
- C++23 compiler (g++)
- Python 3.10+
- make
Build & Run
# 1. Build C++ interactive binaries
make -f makefile.inter
# 2. Run the TUI
cd tracedsa && python -m tracedsa
For Windows builds:
make -f makefile.windows
Requirements
- Python 3.10+
- C++23 compliant compiler for development (g++ recommended)
Built With
- Python — Textual framework for the TUI
- C++23 — All data structures implemented from scratch (no STL containers)
Roadmap
- Sorting & Searching algorithms
- Keyboard shortcuts for all operations
- Session export / snapshots
- Comprehensive test suite
Contributing
Contributions are welcome! New data structures, bug fixes, docs, UI improvements
please read CONTRIBUTING.md first.
Author
License
MIT LICENSE
Made with ❤️ for learning and teaching Data Structures & Algorithms.
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
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 tracedsa-1.0.3.tar.gz.
File metadata
- Download URL: tracedsa-1.0.3.tar.gz
- Upload date:
- Size: 60.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
948372d9dd76e47985e20848a4832f2e0489ae7dfe80cdad7ffd280e9dc636d5
|
|
| MD5 |
11e08e48ae684105d3177b749cc041a4
|
|
| BLAKE2b-256 |
77a6e8151cbb9d367bf44be3a14cc0f6c4dae756282a7b7ca6dfedd5a60f0fdf
|
File details
Details for the file tracedsa-1.0.3-py3-none-any.whl.
File metadata
- Download URL: tracedsa-1.0.3-py3-none-any.whl
- Upload date:
- Size: 5.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd94560c2148c7dffd295ee4df1a4178ffd60501b7d5714ba871ee3cea2bcb1a
|
|
| MD5 |
ecef616343f38ea593b92bd3e237e7d6
|
|
| BLAKE2b-256 |
63a2f75b96fc7b46ca29a95bc8b6ecacf12f0f7eff6eb1431ba2d57d72a8e16c
|