TP N°4

 

Les Listes Chainées Circulaires

 

 

 

Exercice :

 

Ecrire les fonctions suivantes pour les listes chainées circulaires :

 

  1. "ajoutete"  qui ajoute un élément  en tête de liste
  2. "ajoutAprès"  qui ajoute un élément  après une adresse donnée
  3. "creerListeCircFifo" qui crée une liste circulaire de n entiers en FIFO (utiliser « ajoutete » et « ajoutAprès » )
  4. "creerListeCircFifo2" qui crée une liste circulaire de n entiers en FIFO (utiliser uniquement « ajoutAprès » )
  5. "creerListeCircLifo" qui crée une liste circulaire de n entiers en LIFO (utiliser « ajoutete »)
  6. "afficherListCirc" qui parcourt une liste circulaire à partir de la tête et affiche tous les éléments de la liste
  7. "divCList" qui divise une liste circulaire en 2 listes circulaires
  8. "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.
  9. Ecrire la fonction main en appelant chacune des fonctions précédentes.

 

Solution