Liste circulaire avec tête
Résolu/Fermé
bornin90s
Messages postés
44
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
6 juillet 2018
-
Modifié le 29 avril 2018 à 19:06
yg_be Messages postés 22149 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2023 - 29 avril 2018 à 21:01
yg_be Messages postés 22149 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2023 - 29 avril 2018 à 21:01
A voir également:
- Liste circulaire avec tête
- Liste déroulante excel - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Trouver numéro liste rouge gratuitement ✓ - Forum Mobile
- Liste de diffusion whatsapp - Guide
- Tête lnb défectueuse - Forum TV & Vidéo
2 réponses
KX
Messages postés
16726
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 novembre 2023
3 012
29 avril 2018 à 19:22
29 avril 2018 à 19:22
Bonjour,
Ce code n'est pas clair du tout et le mauvais nommage des variables y est pour beaucoup.
Morceau choisi :
Comment s'y retrouver avec tous ces p, pp, pc... il faut utiliser des noms parlants pour savoir ce que l'on manipule.
Du coup
Remarque : c'est quoi une LCT ?
Parce que quand je vois ce genre
Pourquoi la copie d'une donnée d'une liste bidirectionnelle vers une "LCT" dépendrait de la valeur du compte ?
Améliorations pour le programme : il faut découper davantage le code, ne pas tout faire en une seule procédure et éviter le mélange technique/business. La manipulation de pointeurs devrait être plus atomique.
Exemple : une procédure dédiée à l'ajout d'une donnée dans la liste.
Ce code n'est pas clair du tout et le mauvais nommage des variables y est pour beaucoup.
Morceau choisi :
sinon pp↑.suiv←pc FinSi Pp←pc Pc↑.suiv←TeteLct FinSi P←P↑.suiv
Comment s'y retrouver avec tous ces p, pp, pc... il faut utiliser des noms parlants pour savoir ce que l'on manipule.
Du coup
teteLct ←Pou
teteLct ←Pc... à moins d'aller décortiquer le code ligne par ligne pour savoir qui fait quoi, ça va être très compliqué de trancher.
Remarque : c'est quoi une LCT ?
Parce que quand je vois ce genre
Si (p↑.info.sens = "DB") Faireje me demande ce que ça vient faire là.
Pourquoi la copie d'une donnée d'une liste bidirectionnelle vers une "LCT" dépendrait de la valeur du compte ?
Améliorations pour le programme : il faut découper davantage le code, ne pas tout faire en une seule procédure et éviter le mélange technique/business. La manipulation de pointeurs devrait être plus atomique.
Exemple : une procédure dédiée à l'ajout d'une donnée dans la liste.
yg_be
Messages postés
22149
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2023
1 407
29 avril 2018 à 20:34
29 avril 2018 à 20:34
bonjour, si on ne tient pas compte de la casse dans les noms de variables (Pc est identique à pc), je suis d'accord avec la première partie de ton commentaire.
Je ne suis pas d'accord avec la deuxième partie: cela doit être fait, et c'est fait juste après FINSI.
Je ne suis pas d'accord avec la deuxième partie: cela doit être fait, et c'est fait juste après FINSI.
bornin90s
Messages postés
44
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
6 juillet 2018
29 avril 2018 à 20:42
29 avril 2018 à 20:42
bonjour , d'accord... au fait Pc est identique c'est juste une erreur de frappe . Ma derniére question pourquoi on a :
Pc↑.suiv←TeteLct
yg_be
Messages postés
22149
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2023
1 407
>
bornin90s
Messages postés
44
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
6 juillet 2018
29 avril 2018 à 20:48
29 avril 2018 à 20:48
comme la liste est circulaire, le suivant du dernier est le premier, donc la tête.
si la liste était non circulaire, le dernier n'aurait pas de suivant.
si la liste était non circulaire, le dernier n'aurait pas de suivant.
bornin90s
Messages postés
44
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
6 juillet 2018
29 avril 2018 à 20:47
29 avril 2018 à 20:47
ok on a Pc↑.suiv←TeteLct par ce que dans une LCT le dernier élément pointe tjrs vers le premier..
et par exemple le premier element ajouté dans la liste son champ suivant aura son propre adresse : repointe sur lui-même .
et par exemple le premier element ajouté dans la liste son champ suivant aura son propre adresse : repointe sur lui-même .
bornin90s
Messages postés
44
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
6 juillet 2018
29 avril 2018 à 20:54
29 avril 2018 à 20:54
bien reçu les choses s'éclaircissent de mieux en mieux dans ma tête.. au fait je confondais la notion de LMono avec celle de la LCT. merci infiniment pour ton aide.
29 avril 2018 à 19:29
pp joue le role de marquage et de chainage. pc permet d'ajouter un element dans la liste . et p est un pointeur de la Lbi ( liste bidirectionnelle)
29 avril 2018 à 21:01