Les algorithmes C sont, comme son nom l'indique, une collection de structures de données et d'algorithmes communs implémentés en C99.
De temps en temps, je me retrouve à préparer des entretiens techniques qui nécessitent souvent au moins une compréhension de base des structures de données et des algorithmes communs. Ces questions sont censées évaluer les antécédents techniques d'un candidat et la capacité de réfléchir à ses pieds. Dans la vraie vie, cependant, vous devriez certainement éviter de réinventer la roue et utiliser des bibliothèques bien établies et évaluées par des pairs, comme Boost pour C ++.
La première version de la bibliothèque a été implémentée uniquement en en-tête.
Il existe des compromis entre l'expédition d'une bibliothèque dans un format d'en-tête uniquement et l'utilisation de fichiers séparés pour l'API et la mise en œuvre. L'approche d'en-tête uniquement, bien que pas très efficace lors de la construction de grands projets, a un gros avantage; La bibliothèque n'a pas besoin d'être compilée séparément et vous n'avez qu'à #include le fichier d'en-tête pertinent dans votre code source.
Cependant, je me suis finalement installé pour utiliser des fichiers .h et .c séparés pour API et implémentation car il pense qu'il est plus intuitif en termes de structure de code.
J'ai utilisé le framework Googlest (gtest). Cela a beaucoup gonflé le référentiel et pourrait être un exagéré pour ce petit projet, mais je voulais l'essayer néanmoins. Afin d'exécuter les tests, exécutez simplement make test
Il s'agit d'un morceau de code éducatif et expérimental. Inutile de dire que n'utilisez jamais une implémentation aléatoire d'algorithme de jouets comme celle-ci dans n'importe quel paramètre de production.
@Lekkas