This repository is a personal collection of notes, implementations, and examples covering fundamental and advanced topics in Data Structures and Algorithms (DSA). It includes a range of concepts from Object-Oriented Programming (OOP) principles, to the design and implementation of core data structures, algorithms, and the analysis of their time and space complexities. It serves both as a learning reference and a demonstration of various approaches to problem solving and software design.
This repository is intended to:
- Consolidate my understanding of DSA concepts.
- Provide clean, well-documented code examples.
- Serve as a reference for interview preparation and future projects.
- Facilitate learning and sharing with others interested in algorithms and software design.
The repository is under active development. Planned additions and key topics include:
├── Object Oriented Programming - OOP
│ ├── Classes and Objects
│ | ├── Attributes and Methods
│ | ├── Encapsulation
│ | ├── Inheritance
│ | | ├── Polymorphism
│ | | | ├── Method Overriding (Runtime Polymorphism)
│ | | | ├── Method Overloading (Compile-time Polymorphism)
│ | | ├── Abstract classes
│ | ├── Abstraction
│ | | ├── Interfaces
│ | ├── Composition
│ | └── Operator Overloading
├── Fundamental Data Structures and Algorithms - DSA
| ├── Templates
│ ├── Recursion
│ ├── BigO notation
│ ├── Search Algorithms
│ | ├── Sequential search
│ | └── Binary Search
│ ├── Sort Algorithms
│ | ├── Swap sort
│ | ├── Bubble sort
│ | ├── Selection sort
│ | ├── Insertion Sort
│ | ├── Merge sort
│ | └── Quick sort
│ ├── Linked Lists
│ ├── Doubly Linked list
│ ├── Queues
│ ├── Stacks
│ ├── Graphs
│ ├── Binary search trees
│ ├── AVL trees
│ ├── Heap trees
│ └── Hash tables
└── README.md
- Languages: C++ and Python
- Tools: Jupyter Notebook, Visual Studio Code
- Version Control: Git
Suggestions and pull requests are welcome. Feel free to open an issue or fork the repository to contribute :)
by Angel Peña, 2025.