TP N°4
Les Listes Chainées Circulaires
Exercice :
Ecrire les fonctions suivantes pour les listes chainées circulaires
:
-
"ajoutete" qui ajoute un élément en tête de liste
-
"ajoutAprès" qui ajoute un élément après une adresse
donnée
-
"creerListeCircFifo" qui crée une liste circulaire de n entiers en FIFO (utiliser « ajoutete » et « ajoutAprès » )
-
"creerListeCircFifo2" qui crée une liste circulaire de n entiers en FIFO (utiliser uniquement « ajoutAprès » )
-
"creerListeCircLifo" qui crée une liste circulaire de n entiers en LIFO (utiliser « ajoutete »)
-
"afficherListCirc" qui parcourt une liste circulaire à partir de la tête et affiche tous les éléments de la liste
-
"divCList" qui divise une liste circulaire en 2 listes circulaires
- "int retDernierePosition(int n, int m)": Etant donné n personnes
autour d'une table numerotées de 1 à n et un entier m il s'agit d'eliminer la m ieme personne en commencant à partir de la première personne la première fois et en continuant chaque fois à partir
de la position courante jusqu'a avoir une seule personne à la fin. Si n=5 et m=2 on eliminera chaque fois la 2eme personne donc voici les étapes: (2 elimine, cercle 1-3-4-5), (4 elimine,
cercle 1-3-5), (1 elimine, cercle 3-5) (5 elimine, cercle 3) et 3 est la dernière personne à la fin. Le programme doit retourner le numero de la personne qui reste à la fin.
-
Ecrire la fonction main en appelant chacune des fonctions précédentes.
Solution