A collection of data structures and algorithms implemented across multiple programming languages: Python, Ruby, C, and Emacs Lisp.
make # Show help
make all # Run all implementations
make all-algorithms
make all-data-structures
make list # Show the classic search/sort and data-structure matrix
make check-deps # Verify language runtimesThe classic search and sort targets have explicit algo-<name> and
algo-<name>-<lang> Make targets:
| Algorithm | Python | Ruby | C | Elisp |
|---|---|---|---|---|
| Binary Search | ✓ | ✓ | ✓ | ✓ |
| Linear Search | ✓ | ✓ | ✓ | ✓ |
| Merge Sort | ✓ | ✓ | ✓ | ✓ |
| Quicksort | ✓ | ✓ | ✓ | ✓ |
| Selection Sort | ✓ | ✓ | ✓ | ✓ |
| Topological Sort | ✓ | ✓ | ✓ | ✓ |
| Structure | Python | Ruby | C | Elisp |
|---|---|---|---|---|
| Linked List | ✓ | ✓ | ✓ | ✓ |
| DAG | ✓ | ✓ | ✓ | ✓ |
| Stack | ✓ | ✓ | ✓ | ✓ |
| Binary Search Tree | ✓ | ✓ | ✓ | ✓ |
| Hash Map | ✓ | ✓ | ✓ | ✓ |
# Run a specific algorithm in one language
make algo-quicksort-python
# Run an algorithm in all available languages
make algo-quicksort
# Run every classic algorithm
make all-algorithms
# Run all implementations for a language
make lang-ruby
# Run a specific data structure
make ds-linked-list-ruby