Listes circulaires
Transcription
Listes circulaires
Programmation Impérative R. Rioboo Année 2012-2013 Listes circulaires Une liste circulaire est une liste dont le dernier élément pointe sur le début de la liste. On représentera les listes circulaires comme des listes à l’aides des définitions suivantes : typedef int T; typedef struct maillon *Liste; struct maillon { T donnee; Liste suivant; }; On travaille sur les listes circulaires comme sur des listes normales mais le test d’arret se fait au premier cycle rencontré. Si on rencontre le pointeur NULL la liste n’est pas circulaire. Exercice 1 1. Écrire la fonction cons qui prend une liste circulaire l, un élément e de type T et ajoute e au début de l. On pourra modifier la liste passée en argument. 2. Écrire la fonction add qui prend une liste circulaire l, un élément e de type T et ajoute e à la fin l. 3. Écrire une fonction affiche qui affiche la liste circulaire qui lui est passée en argument. Exercice 2 – Écrire une fonction recopie qui retourne une copie de la liste circulaire qui lui est passée en argument. – Écrire une fonction qui libère l’espace mémoire utilisé par une liste circulaire l – Écrire une fonction qui teste si les éléments d’une liste circulaires sont triés dans un ordre non décroissant. Exercice 3 Reprendre les différentes fonctionalités des listes et les réécrire pour les listes circulaires.