Pourquoi apprendre les structures de données en C ?
Parce que le C ne cache rien. Sans liste, table associative ni file natives, tu implémentes chaque structure à partir de blocs de mémoire et de pointeurs, ce qui est exactement ce qu'est une structure. Ensuite, la HashMap de Java et le dict de Python sont les mêmes idées, avec la gestion de la mémoire faite pour toi, et tu peux raisonner sur leur coût.
Que faut-il savoir avant d'apprendre les structures de données en C ?
Les pointeurs, les structs, les tableaux, et malloc et free. Les pointeurs surtout : une liste chaînée est une chaîne de champs struct node *next, et un arbre binaire en a deux par nœud. Si les pointeurs te semblent encore flous, le cours C de Coddy les couvre d'abord, gratuitement.
Comment implémenter une table de hachage en C ?
Avec un tableau d'alvéoles, une fonction de hachage qui transforme une clé en indice, et une règle pour le cas où deux clés tombent dans la même alvéole : en général une liste chaînée par alvéole (chaînage) ou le sondage jusqu'à la prochaine case libre. Quand la table dépasse un facteur de charge fixé, tu alloues un tableau plus grand et tu réinsères tout. Le cours sur les tables de hachage de l'étape une en construit une de zéro.
Le C est-il un bon langage pour les entretiens techniques ?
Peu de candidats passent leurs entretiens en C en dehors des postes en embarqué et en programmation système, car écrire une table de hachage de zéro en plein entretien coûte un temps que d'autres langages t'offrent gratuitement. Les connaissances se transfèrent pourtant entièrement, et C++ n'est qu'à un pas : la même syntaxe, plus la STL. Un chemin courant consiste à apprendre les structures en C, puis à faire les lots d'entretien en C++, en Java ou en Python, tous proposés dans ce parcours.
Quels cours de ce parcours ne sont pas enseignés en C ?
Trois : la programmation dynamique et la série d'entretiens en Python sont enseignées en Python, et la manipulation de bits en C++. Ces trois cours figurent après les étapes, chacun avec un lien qui l'ouvre dans son propre langage. Des trois, le cours de manipulation de bits est le plus facile à suivre quand on vient du C : C++ a gardé les &, |, ^, ~, << et >> du C exactement tels quels.
Faut-il apprendre les structures de données en C ou en C++ ?
Le C pour comprendre les structures, le C++ pour les utiliser. En C, tu construis tout, c'est pourquoi tant de cursus enseignent la matière dans ce langage ; en C++, tu construis chaque structure une fois puis tu te sers de la STL, c'est pourquoi les programmeurs compétitifs l'utilisent. Commencer en C et passer au C++ ne fait rien perdre.