Corrigé 38 Enoncé
Interclassement de n listes linéaires
chaînées
Création d'une liste (Tetell) de listes à partir de V
Soient I un entier Pll , Qll , Tetell des listes de listes d'entiers
Tetell := NIL
POUR I := 1 , 5
ALLOUER ( Pll )
AFF_VAL ( Pll , ELEMENT ( V [ I ] ) )
SI Tetell <> NIL
AFF_ADR ( Qll , Pll )
SINON
Tetell := Pll
FSI
Qll := Pll
FPOUR
AFF_ADR ( Pll , NIL )
Affichage de la liste de listes
Soit Tetell une listes de listes d'entiers et Pl une liste d'entiers.
Pll := Tetell
TANTQUE Pll <> NIL
Pl := VALEUR ( Pll )
TANTQUE Pl <> NIL :
ECRIRE ( VALEUR ( Pl )
)
Pl := SUIVANT ( Pl )
FTANTQUE
Pll := SUIVANT ( Pll )
FTANTQUE
Interclassement
Soient Tetel la liste d'entiers à créer et Point un vecteur ( 5 ) de listes d'entiers.
POUR I := 1 , 5
AFF_ELEMENT ( Point [ I ] , ELEMENT ( V [ I ] )
)
FPOUR
Tetel := NIL
Arret := FAUX
TANTQUE NON Arret
{ recherche du min }
Inf := 1000 { + infini }
Indinf := 0
POUR I := 1 , 5
SI ELEMENT ( Point [ I
] ) <> NIL
SI VALEUR ( ELEMENT ( Point [ I ] ) ) < Inf
Inf := VALEUR ( ELEMENT ( Point [ I ] ) )
Indinf := I
FSI
FSI
FPOUR
SI Indinf <> 0
ALLOUER ( Pl )
AFF_VAL ( Pl , VALEUR (
ELEMENT ( Point [ Indinf ] ) ) )
SI Tetel ^= NIL
AFF_ADR ( Ql , Pl )
SINON
Tetel := Pl
FSI
Ql := Pl
AFF_ELEMENT ( Point [
Indinf ] ,
SUIVANT ( ELEMENT (
Point [ Indinf ] ) ) )
SINON
Arret := VRAI
FSI
FTANTQUE
AFF_ADR ( Pl , NIL )
Supprimer les doubles
Soit Tetel une liste d'entiers.
{ suppose la liste non vide }
Pl := Tetel
TANTQUE SUIVANT ( Pl ) <> NIL
SI VALEUR ( Pl ) = VALEUR ( SUIVANT ( Pl ) )
Ql := SUIVANT ( Pl )
AFF_ADR ( Pl , SUIVANT
( SUIVANT ( Pl ) ) )
LIBERER ( Ql )
SINON
Pl := SUIVANT ( Pl )
FSI
FTANTQUE