Vous êtes sur la page 1sur 2

Université de Carthage

ENICarthage

Algorithmique et Structure de Données II


TD1 – Les Listes Chaînées

EXERCICE N° 1 :
Etant donnée une liste simplement chaînée L ayant la structure suivante :
TYPE Nœud= enregistrement
info : entier
suiv : ^Nœud
Finenregistrement.
. Liste = ^Nœud
Ecrire les fonctions suivantes :
1. Long(L : Liste) qui retourne la longueur de la liste L.
2. Modifier(var : L : Liste ; pos :entier ; val : entier) qui permet de modifier le nœud en
position pos en lui affectant la valeur val.
3. Oter(L :Liste) qui supprime, si possible, le deuxième élément de la liste L.

EXERCICE N° 2 :
Soit L une liste simplement chaînée, contenant des doublons c'est-à-dire des éléments qui
auraient même valeur que leur successeur. Ecrire une procédure permettant de supprimer tous les
doublons de L.

EXERCICE N° 3 :
Ecrire une procédure Miroir(var L : Liste ) qui permet d’inverser le chaînage des éléments de L.

EXERCICE N° 4:
Un Sac est un « ensemble » dans lequel un élément peut apparaître plusieurs fois. Par exemple, un
Sac de fruits peut contenir deux pommes, une orange et quatre prunes. Dans cet exercice, on
considère des sacs d’entiers. Un exemple de sac d’entiers est S = {1, 1, 3, 3 , 3, 5}. Nous dirons
que trois valeurs apparaissent dans ce sac de six éléments : la valeur 1 avec la multiplicité 2, la
valeur 3 avec la multiplicité 3, et la valeur 5 avec la multiplicité 1.
On décide de représenter Sac en utilisant des listes chaînées:
TYPE Couple = enregistrement
val : entier
multip : entier { ≥ 1}
Finenregistrement.
Nœud= enregistrement
info : Couple
suiv : ^Nœud
Finenregistrement.
Sac = ^Nœud
Dans la liste, les couples sont rangés par ordre croissant de leur valeur. La multiplicité est un
entier ≥ 1. Par exemple, le sac S sera représenté par la liste chaînée [(1, 2), (3, 3), (5, 1)].
1. Ecrire une fonction qui retourne vrai si chacune des valeurs n’apparaît qu’une seule fois
dans le sac, faux sinon.
2. Ecrire une fonction qui retourne la position (pointeur) de la valeur Val dans le sac si elle
existe, NIL sinon.
3. Ecrire une procédure qui permet d’ajouter une valeur x au sac.
4. Ecrire une procédure qui permet de supprimer une valeur x du sac si elle existe.

Vous aimerez peut-être aussi