Updated README-it.md

[Translated To Line 753]
This commit is contained in:
Marco Marrelli
2022-05-17 08:53:58 +02:00
committed by GitHub
parent d634ee7e35
commit 0fd9d14232

View File

@ -645,111 +645,112 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- spazio necessario = (capacità dell'array, che è >= n) * grandezza di un item, ma anche se 2n, rimane O(n) - spazio necessario = (capacità dell'array, che è >= n) * grandezza di un item, ma anche se 2n, rimane O(n)
- ### Linked Lists - ### Linked Lists
- [ ] Description: - [ ] Descrizione:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK) - [ ] [Liste Linkate Singolarmente (Video in Inglese)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0) - [ ] [CS 61B - Linked Lists 1 (Video in Inglese)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w) - [ ] [CS 61B - Linked Lists 2 (Video in Inglese)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) - [ ] [C Code (Video in Inglese)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation - non il video intero, ma solo nozioni sulla struttura del nodo e l'allocazione della memoria
- [ ] Linked List vs Arrays: - [ ] Linked List vs Arrays:
- [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9) - [Core Linked Lists Vs Arrays (Video in Inglese)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
- [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd) - [Nel Mondo Reale, Linked Lists Vs Arrays (Video in Inglese)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
- [ ] [why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo) - [ ] [Perché dovresti evitare le Linked Lists (Video in Inglese)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- [ ] Gotcha: you need pointer to pointer knowledge: - [ ] Ti aiuto un po': hai bisogno della conoscenza riguardo puntatori di puntatori:
(for when you pass a pointer to a function that may change the address where that pointer points) (per quando passi un puntatore ad una funzione che potrebbe cambiare l'indirizzo a cui il puntatore punta)
This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness. Questa pagina serve solo ad avere un assaggio dei puntatori ai puntatori. Non consiglio di seguire l'ordine di questa lista.
La scorrevolezza nel leggere viene persa per colpa di una mancanza di intelligenza.
- [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html) - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- [ ] Implement (I did with tail pointer & without): - [ ] Implementazione (Fatto con puntatori alla coda e senza):
- [ ] size() - returns number of data elements in list - [ ] size() - returna il numero di elementi nella lista
- [ ] empty() - bool returns true if empty - [ ] empty() - returna vero se la lista è vuota, altrimenti falso
- [ ] value_at(index) - returns the value of the nth item (starting at 0 for first) - [ ] value_at(index) - returna il valore in posizione index (partendo da 0 per il primo)
- [ ] push_front(value) - adds an item to the front of the list - [ ] push_front(value) - aggiungi un item in testa alla lista
- [ ] pop_front() - remove front item and return its value - [ ] pop_front() - rimuove l'item in testa alla lista e ne returna il valore
- [ ] push_back(value) - adds an item at the end - [ ] push_back(value) - aggiunge un elemento in coda alla lista
- [ ] pop_back() - removes end item and returns its value - [ ] pop_back() - rimuove l'elemento finale della lista e ne returna il valore
- [ ] front() - get value of front item - [ ] front() - returna il valore all'inizio della lista
- [ ] back() - get value of end item - [ ] back() - returna il valore alla fine della lista
- [ ] insert(index, value) - insert value at index, so current item at that index is pointed to by new item at index - [ ] insert(index, value) - inserisce il valore in posizione index, così l'elemento attuale in posizione index punterà all'elemento successivo
- [ ] erase(index) - removes node at given index - [ ] erase(index) - rimuove un nodo ad un index dato
- [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list - [ ] value_n_from_end(n) - returna un valore in posizione n rispetto la fine della lista
- [ ] reverse() - reverses the list - [ ] reverse() - reversa la lista
- [ ] remove_value(value) - removes the first item in the list with this value - [ ] remove_value(value) - rimuove il primo elemento nella lista avente il valore dato
- [ ] Doubly-linked List - [ ] Liste Linkate Doppiamente
- [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD) - [Descrizione (Video in Inglese)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
- No need to implement - Non c'è bisogno di implementarle
- ### Stack - ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ) - [ ] [Stacks (Video in Inglese)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
- [ ] Will not implement. Implementing with array is trivial - [ ] Non saranno implementati. Esercitarsi con l'array è quasi banale.
- ### Queue - ### Queue
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq) - [ ] [Queue (Video in Inglese)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer) - [ ] [Buffer Circolare/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- [ ] Implement using linked-list, with tail pointer: - [ ] Implementazione usando le linked list, con puntatore alla coda:
- enqueue(value) - adds value at position at tail - enqueue(value) - aggiunge un valore alla posizione della coda
- dequeue() - returns value and removes least recently added element (front) - dequeue() - returna il valore aggiunto per ultimo e lo rimuove
- empty() - empty() - controlla se è vuota o meno
- [ ] Implement using fixed-sized array: - [ ] Implementazione usando gli array con memoria allocata fissa:
- enqueue(value) - adds item at end of available storage - enqueue(value) - aggiunge un item alla fine
- dequeue() - returns value and removes least recently added element - dequeue() - returna il valore aggiunto per ultimo e lo rimuove
- empty() - empty() - controlla se la queue è vuota
- full() - full() - controlla se la queue è piena
- [ ] Cost: - [ ] Costi:
- a bad implementation using linked list where you enqueue at head and dequeue at tail would be O(n) - una implementazione sbagliata usando le linked list dove aggiungi alla queue dalla testa e togli dalla coda porterebbe ad O(n)
because you'd need the next to last element, causing a full traversal each dequeue perché avrai bisogno dal prossimo elemento fino alla fine, causando una dequeue trasversale per tutta la lista.
- enqueue: O(1) (amortized, linked list and array [probing]) - enqueue: O(1) (ammortizzata, linked list e array [approfondendo])
- dequeue: O(1) (linked list and array) - dequeue: O(1) (linked list e array)
- empty: O(1) (linked list and array) - empty: O(1) (linked list e array)
- ### Hash table - ### Hash table
- [ ] Videos: - [ ] Video:
- [ ] [Hashing with Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8) - [ ] [Hashing con Chaining (Video in Inglese)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- [ ] [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) - [ ] [Table Doubling, Karp-Rabin (Video in Inglese)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) - [ ] [Indirizzamento Aperto, Hashing Crittografico (Video in Inglese)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68) - [ ] [PyCon 2010: Il Dizionario, ma Più Potente (Video in Inglese)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU) - [ ] [PyCon 2017: Dizionario, ma ancora Più Potente (Video in Inglese)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11) - [ ] [(Avanzato) Randomizzazione: Universale & Hashing Perfetto (Video in Inglese)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) - [ ] [(Avanzato) L'hashing perfetto (Video in Inglese)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- [ ] Online Courses: - [ ] Corsi Online:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP) - [ ] [Core Hash Tables (Video in Inglese)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/4) - [ ] [Strutture Dati (Video in Inglese)](https://www.coursera.org/learn/data-structures/home/week/4)
- [ ] [Phone Book Problem (video)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP) - [ ] [Problemi con gli Elenchi Telefonici (Video in Inglese)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
- [ ] distributed hash tables: - [ ] hash tables distribuite:
- [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb) - [Uploads Istantanei e Ottimizzazione dello Storage Su Dropbox (Video in Inglese)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
- [Distributed Hash Tables (video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H) - [Hash Tables Distribuite (Video in Inglese)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
- [ ] Implement with array using linear probing - [ ] Implementazione con gli array usando il sondaggio (probing) lineare
- hash(k, m) - m is size of hash table - hash(k, m) - m è la grandezza dell'hash table
- add(key, value) - if key already exists, update value - add(key, value) - se la chiave esiste già, il valore viene aggiornato
- exists(key) - exists(key) - se la chiave esiste
- get(key) - get(key) - prende il valore della chiave
- remove(key) - remove(key) - rimuove il valore con chiave data
## More Knowledge ## Piu' Teoria
- ### Binary search - ### Ricerca Binaria
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno) - [ ] [Ricerca Binaria (Video in Inglese)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search) - [ ] [Ricerca Binaria (Video in Inglese)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/) - [ ] [dettagli](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
- [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems) - [ ] [progetto](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
- [ ] Implement: - [ ] Implementazione:
- binary search (on sorted array of integers) - ricerca binaria (su array ordinati di interi)
- binary search using recursion - ricerca binaria usando la ricorsione
- ### Bitwise operations - ### Operazioni Bit a Bit
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32) - [ ] [Cheat-sheet sui bit](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - dovrai arrivare a conoscere le potenze del 2 da 2^1 fino a 2^16 e 2^32
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, << - [ ] Preparati bene sulla manipolazione dei bit tramite questi operatori: &, |, ^, ~, >>, <<
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture)) - [ ] [words (Articolo in Inglese)](https://en.wikipedia.org/wiki/Word_(computer_architecture))
- [ ] Good intro: - [ ] Una buona Introduzione:
[Bit Manipulation (video)](https://www.youtube.com/watch?v=7jkIUgLC29I) [Manipolazione dei Bit (Video in Inglese)](https://www.youtube.com/watch?v=7jkIUgLC29I)
- [ ] [C Programming Tutorial 2-10: Bitwise Operators (video)](https://www.youtube.com/watch?v=d0AwjSpNXR0) - [ ] [Tutorial di programmazione C 2-10: Operazioni Bit a Bit (Video in Inglese)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
- [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation) - [ ] [Manipolazione dei Bit](https://en.wikipedia.org/wiki/Bit_manipulation)
- [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation) - [ ] [Operazioni bit a bit](https://en.wikipedia.org/wiki/Bitwise_operation)
- [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html) - [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
- [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/) - [ ] [Il Bit Twiddler](https://bits.stephan-brumme.com/)
- [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html) - [ ] [Il Bit Twiddler Interattivo](https://bits.stephan-brumme.com/interactive.html)
- [ ] [Bit Hacks (video)](https://www.youtube.com/watch?v=ZusiKXcz_ac) - [ ] [Trucchi su i Bit (Video in Inglese)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
- [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/) - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
- [ ] 2s and 1s complement - [ ] 2s and 1s complement
- [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4) - [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)