In this repository you can find Golang implementations of all the data structures and exercises covered in the book "Estructuras de Datos con Java Moderno", written by Canek Peláez Valdez.
The objective of this work is to adapt the ideas and concepts of this book to the idiomatic characteristics of Go, offering clean, efficient and well-documented code.
This project is developed using literate programming, where the code and its documentation are interwoven in a single, narrative-driven Org-mode document. This approach blends human-readable explanations with executable Go code, making the development process transparent and the learning experience engaging.
Literate programming, pioneered by Donald Knuth, treats code as a narrative. Instead of separating code and documentation, they are written together in a way that prioritizes clarity and understanding. In this project, we use Org-mode (a powerful markup language from Emacs) to create a single document that combines detailed explanations, design decisions, and Go code. The code is then "tangled" into executable .go files and "woven" into readable documentation, ensuring that the development process is both functional and educational.
This is not a direct translation of the book but a reinterpretation of its concepts tailored to the traits and features of Go
- AVL Trees
- Complete Binary Trees
- Ordered Binary Trees
- RB-trees
- Utilities related to arrays
- Queues
- Stacks
- Dictionaries (with some hash functions)
- Sets
- Graphs
- Linked Lists
- Binary Heaps
- Fenwick Trees (this is not included in the book but I want to study them)
- Segment Trees (idem)