Liste doublement chaînée d’entiers

Buts

Énoncé

La structure de liste doublement chaînée

Le type de liste doublement chaînée doit être la structure suivantes:

typedef struct element {
    int data;
    struct element *next;
    struct element *prev;
} element_t;
typedef struct {
    element_t *head;
    element_t *pos;
} dll;

Le pointeur head pointe toujours sur le premier élément de la liste chaînée. Le pointeur pos pointe lui sur un élément arbitraire de la liste. C’est notre “curseur”.

Fonctions de création et consultation

Fonctions de manipulation

Fonctions d’insertion

Fonctions d’extraction et destructions

Tests

N’oubliez pas de tester chacune de vos fonctions au fur et à mesure que vous les écrivez. Créez ainsi un prorgamme qui petit à petit appelle chacun des fonctions que vous écrivez et testez le bon fonctionnement de celles-ci (en affichant, par exemple, l’état de la liste à chaque instant). Il est inutile d’écrire tout le code en une fois et de tenter ensuite de le tester. Écrivez également un Makefile permettant la compilation de votre projet.