:: Enseignements :: Licence :: L2 :: 2008-2009 :: Structures de données ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Listes chaînées |
Structure récursive de listes
Définir les types nécessaires à la gestion d'une liste chaînée d'entiers.
On rappelle que leur implantation peut être illustrée par le schéma ci-dessous.
Listes simplement chaînées
-
Écrire deux méthodes d'allocation d'une cellule de liste chaînée
(qui placent dans la cellule une valeur entière passée en argument).
La première, alloueUneCellule, retourne la nouvelle cellule
en résultat de la fonction. La seconde, alloueCetteCellule,
effectue l'allocation d'une cellule qu'elle a reçu en argument.
Pour chacune des fonctions, préciser les instructions d'appel
et justifier l'usage des pointeurs.
-
Écrire une fonction libereCellule réalisant la
désallocation d'une cellule.
-
Écrire deux fonctions d'affichage d'une liste, l'une itérative et
l'autre récursive.
-
Écrire une fonction libereListe réalisant la désallocation
de toutes les cellules d'une liste.
-
Écrire une fonction insereEnTete, acceptant une liste et une valeur, et
insérant une nouvelle cellule ayant cette valeur en tête de la liste.
-
Écrire une fonction insereEnPlace qui accepte les mêmes arguments, mais
qui insère la nouvelle cellule de sorte que la liste reste triée par ordre
croissant des valeurs entières.
-
Écrire une fonction recherche qui, étant données une liste et
une valeur entière, retourne un pointeur sur la cellule de la liste
contenant cette valeur, ou NULL si la valeur n'est pas dans la liste.
-
Écrire une fonction supprime qui, étant données une liste et une valeur
entière, supprime la première cellule de la liste contenant cette valeur.
Si une telle cellule est supprimée, la fonction retourne 1, sinon elle retourne 0.
© Université de Marne-la-Vallée