Liste circulaire avec tête, exercice niveau débutant
Bonsoir les amis, est ce que vous pouvez m'aidez svp et merci d'avance. Alors je n'avais pas le cours et une amie me l' a donné et il y a un exo avec la solution et où je pense qu'il y a une erreur. Donc j'ai besoin d 'un autre avis . Je vais y mettre une ligne de commentaire.
L'enoncé de l'exercice:
Soit une liste bidirectionnelle de compte, écrire un module qui transfert dans une LCT tous les comptes débiteurs. Un compte est caractérisé par son numéro, son propriétaire, son type, son sens (débiteur ou créditeur) et son solde.
Et la solution :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
Type compte = Structure
DEBUT
Num : entier
Prop, type : chaine
Sens : "CR", "DB"
Solde : entier
FIN
Type LBi = ↑structure
DEBUT
Info : compte
Prec, suiv :LBi
FIN
Type LCT = ↑structure
DEBUT
Info : compte
Suiv :LCT
FIN :
Var Teteb, queueb : LBi
Var TeteLct : Lct
Procedure creationLct (Donnee Teteb, queueb : LBi Resultat TeteLct : Lct)
Var p : LBi
Var pp, pc : Lct
DEBUT
TeteLct ← Nil
P← Teteb
Tantque (p !=Nil) Faire
Si (p↑.info.sens = "DB") Faire
Allouer (pc)
Pc↑info←p↑.info
Si (teteLct = Nil) alors
teteLct ←P ' Là je trouve qu elle aurait du mettre teteLct ←Pc Qu'est ce que vous en pensez ?
' et y mettre également pp ←Pc
sinon
pp↑.suiv←pc
FinSi
Pp←pc
Pc↑.suiv←TeteLct
FinSi
P←P↑.suiv
FinTantque
FIN |