This repo follows the topics of the following courses for students of Laurea triennale in Informatica at UniversitĂ Ca' Foscari di Venezia:
Anyhow, I took the liberty of adding extra content for a better comprehension of the course. Eventually this project will be extended to include advanced data structures and algorithms.
- Asymptotic notions
- Temporal and Spatial Complexity
- Solving occurrences
- Decision Problems and NP-Hardness
I will include the following data structures, their primitives, and some of their declinations:
- Trees
- Heap
- Priority Queues
- Tables
- Graphs
I do not include (for now), some basilar data structures and their implementations such as:
- Sets
- Array
- Stack
- Queues
- Lists and their declinations.
I will try and implement the algorithms to make immediately runnable.
- Sorting
- Dynamic Programming
- Greedy Algorithms
The implementation technique will be done in C++/C
- Retouch: *
I do not take any credit for the contents, which are taken from my professors, the textbooks and external sources:
- Professor Alessandra Raffaeta' and Marcello Pelillo
- [DFI] C. Demetrescu, I. Finocchi, G.F. Italiano. Algoritmi e strutture dati. Seconda Edizione. McGraw-Hill, 2008.
- [CLRS] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to algorithms 3/ed. McGraw-Hill, 2010.
- Solutions to CLRS exercise:
- Students of Ca' Foscari.
- Pareschi Chiara
- Femia Bertacco Giacomo
- Grazioso Matteo
- D'Attero Andrea
- Bertazzon Alice
- Simonato Niccolo'
- Scapin Filippo
- Campanelli Alessio
- Zanin Alessandro
We will add specific sections to give credit when due, but we recommend to buy the books and follow a university level course in order to understand these concepts better.
If you feel like any of the content is yours and/or should be removed, please contact me immediately.
I must mention a couple of resources which I found useful: