Perché imparare le strutture dati in C?
Perché il C non nasconde niente. Senza liste, mappe o code già pronte, implementi ogni struttura a partire da blocchi di memoria e puntatori, che è esattamente ciò che la struttura è. Dopo, la HashMap di Java e il dict di Python sono le stesse idee con la gestione della memoria fatta per te, e sai ragionare su quanto costano.
Cosa devo sapere prima di imparare le strutture dati in C?
Puntatori, struct, array, e malloc e free. Soprattutto i puntatori: una lista concatenata è una catena di campi struct node *next, e un albero binario ne ha due per nodo. Se i puntatori ti sembrano ancora incerti, il corso di C di Coddy li tratta prima, gratis.
Come si implementa una tabella hash in C?
Con un array di bucket, una funzione hash che trasforma una chiave in un indice e una regola per due chiavi che finiscono nello stesso bucket: di solito una lista concatenata per bucket (chaining) o la ricerca del prossimo slot libero (probing). Quando la tabella supera un fattore di carico prestabilito, allochi un array più grande e reinserisci tutto. Il corso sulle tabelle hash del primo passo ne costruisce una da zero.
Il C è un buon linguaggio per i colloqui di programmazione?
Pochi candidati fanno i colloqui in C al di fuori dei ruoli embedded e di sistema, perché scrivere una tabella hash da zero durante un colloquio costa tempo che altri linguaggi ti regalano. Le conoscenze però si trasferiscono del tutto, e il C++ è a un passo: stessa sintassi, più la STL. Una strada comune è imparare le strutture in C e poi affrontare i pacchetti per i colloqui in C++, Java o Python, tutti offerti da questo percorso.
Quali corsi di questo percorso non sono insegnati in C?
Tre: la programmazione dinamica e la serie di colloqui Python sono insegnate in Python, e la manipolazione dei bit in C++. Sono elencati dopo i passi, ognuno con un link che lo apre nel suo linguaggio. La manipolazione dei bit è la più facile da seguire partendo dal C: il C++ ha mantenuto &, |, ^, ~, << e >> del C esattamente come sono.
Meglio imparare le strutture dati in C o in C++?
In C per capire le strutture, in C++ per usarle. In C costruisci tutto, ed è per questo che così tanti corsi di laurea insegnano la materia in C; in C++ costruisci ogni struttura una volta e poi ricorri alla STL, ed è per questo che la usano i programmatori competitivi. Partire dal C e passare al C++ non fa perdere nulla.