git
et de make
.Implémenter deux librairies de files d’attente que vous avez vues en cours d’algorithmique et structures de données:
Bien entendu vous devez utiliser git
et make
pour la gestion et la compilation de votre projet.
Le type, T
, des éléments à stocker dans vos files d’attente seront connus à la compilation mais définis à l’aide d’un typedef
1 (un alias pour un type)
typedef int32_t T;
Ainsi les éléments de votre file d’attente dans le cas où elle est basée sur la liste chaînée seront de type (notez bien que data
est de type T
):
struct _element {
T data;struct _element *next;
} element;
De cette façon vous pouvez facilement changer le type des données contenues dans vos files d’attente. Cela vous sera utile pour un prochain travail pratique.
Vous devez implémenter pour chaque file d’attente toutes les fonctions de manipulation de files que vous avez vues au cours d’algorithmique et structures de données.
Pour chacune des files implémenter un programme qui permet de tester le bon fonctionnement de votre librairie.
Il s’agit ici de créer les fonctions suivantes:
Il s’agit ici de créer les fonctions suivantes:
Adapter la librairie de vecteurs en deux dimensions que vous avez déjà implémentée en physique pour contenir uniquement des entiers (et non des double
). Écrivez ensuite un programme permettant de tester que votre librairie de files d’attente fonctionne correctement avec ces vecteurs d’entiers.
Cela permet d’avoir une certaine “généricité” du code. Pour avoir une vraie généricité les éléments de la file d’attente devraient être de type void *
. Si cela vous intéresse vous pouvez tenter de tout implémenter à l’aide de void *
mais cela complique beaucoup le travail pratique.↩︎