DSA Quick Reference
This is a quick Data Structure and Algorithms reference guide with examples based on the Python 3 programming language.
If you have come here, you are probably preparing for an interview, or just want to review some material before participating to a coding competition. Either way, I hope you enjoy that collection of material and make good use of it.
I usually collect notes in a much more elegant way using my favorite pens, a Moleskin, drawing everything by hand. But if you have to travel, it can be useful to have everything available in one repository.
There are a lot of similar documents, some of them really complete, that you will find in the reference section. I know a question will arise in your mind: why bother writing another one. Well, I am a great fan of "review by doing it again" philosophy, and I encourage you of doing the same because you really understand something when you try to explain it to someone else.
Currently, this document is a work in progress and will soon reach a sufficient level of completeness, although the ultimate intention is to provide guidance for reviewing concepts you are already familiar with, so it will never be a comprehensive source of information.
For more information on the topics, I have found some books and courses that could be useful to you, and that you will find in the references section at the bottom.
Table Of Content
- Introduction
- Collections
- Linear Data Structures
- Non Linear Data Structures
- Trees
- Binary Trees
- Binary Search Trees (BST)
- Tries
- Heaps
- Self balancing Trees
- Maps and Hashing
- Graphs
- Algorithms
- Binary Search
- Sorting
- Divide and Conquer
- Greedy Algorithms
- Dynamic Programming
- Knapsack problem
- Longest common sequence
- A star
References
Here you will find some useful online courses, book and tutorials that can help you going deeper into some topic:
- Courses
- Books
- Articles